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 won't stop me from merging it, but it would be good to note that 'start' and 'end' are indices within the data object.