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.
Hmm, let me ask a different question then. Is there any call of the function returned by settings.js that would result in more than one iteration of the `while` loop? From what I see (looking at carelinkDriver.js) the answer is no, which makes the `while` equivalent to an `if`, no?