Fully handle settings objects

@kentquirk @jebeck

This PR finishes up the handling of settings objects and changes to settings objects in the carelink driver.

Please give this a once over and let me know if you have any questions.  When reading, might I suggest reading over the entire settings.js file instead of looking at the diff.  It will probably also help to reference the noChanges and withChanges `input.csv` files in the tests to help get a sense of what the input data looks like.
This happens when `lhs.deviceTime === rhs.deviceTime`