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.
When a Medtronic pump resumes from a suspend to normal scheduled delivery, it gives us a `BasalProfileStart` event at the same timestamp as the resume representing the return to the scheduled rate. However, when it returns to a temp basal (assuming the resume happens within the original programmed duration of the temp), it *does not* give us a new basal event, so we have to fabricate one.

When the simulator takes in a `resume` event, it doesn't know if the pump is going to be returning to a temp basal or a scheduled basal, so it fabricates a resume basal from the suppressed of the current `deliveryType: 'suspend'` basal, but it doesn't yet simulate it, it just stores it in `currBasal`. On the next scheduled basal (i.e., here), we check to see if the timestamp of the resume roughly matches the timestamp of the current scheduled basal, and if they do, we discard the fabricated basal because it's a duplicate.