Device Configuration Hierarchy

https://github.com/librenms/librenms/issues/3002

This issue proposes a device configuration hierarchy.
This is a system where a devices configuration is built from a combination of configuration elements stored in 3 levels: Global, Group, Device

In this system an array of configuration information is built by:

The array is initially populated with all the Global configuration.
Array elements are overwritten if set at the group level, where the device is a member.
If a device is member of multiple groups, these are processed in alphabetical order (or a priority field can be added to groups).
Array elements are overwritten if set at the device level.
This gives us the ability to set default values (global level) and modify them if needed, at any point in the hierarchy.

All device configuration in (Device -> Edit): Device Settings, SNMP, Alert Settings, IPMI, Misc. should be migrated.

Thanks,
Aaron