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.
Just a last question to check my understanding of the flow here. The `while` loop here often only runs once, correct? But the `while` is here instead of an `if` for when (for example) someone changes multiple settings in quick succession, so there is a cluster of settings objects with close together timestamps in the data (with potentially no other events between them in time) and so we need to find the most recent of those to get the most up-to-date settings object?