Still missing several things before this can be merged:
variable names. names taken from keys in received data are being used currently. This breaks both backwards compatibility and convention. Ex: in bulb.rb: "@modelid" should be "@model_id".
this is going to require a list of keys and keys to convert them to, as well as a method to do the work
keys should go in each class, method should go in hobject and take map of {key_a => key_b}
attr_writer validation. Which values do we actually need to be able to edit?
data() method should use aforementioned list of keys to intelligently reconstruct the data hash.
more tests covering reading/writing values to hue object classes
**_DO NOT MERGE_**