fixes #4599 - DNS and DHCP records for BMC and managed interfaces not using FQDN
(cherry picked from commit 21e07e92ca2d0341a09de48fadfa95625f6d9f55)
fixes #3697, #3701 - more comprehensive field validations
fixes #2378 - added Minitest and other code cleanups
fixes #1814 - converts sp_* attributes into a BMC interface class
this patch also includes the following