Device refactor

Refactoring the device class.  I also had to touch all of the service objects due to changing the "value_for" method in device.
This still needs tests for the "type_conversion" file.