a round of CareLink fixes (suspend/resumes, basals, settings)

@kentquirk @jh-bate This is ready for review, including tests. I'm going to start commenting in line.
A basal has to be simulated *after* a resume from suspend, so in the case outlined in previous comment, when we are fabricating a resume, we can't simulate the current basal yet. We have to save it in `currBasal` and wait to simulate it until after we've simulated the resume.