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.
Umm, kinda, but not really.  If you look at the body of the while loop, it's generating a settings event for each of them.  So, it's essentially just walking through the settings events that it has and making sure that all of them up until the next timestamp have been emitted.