Store state in a cache file, and restore on start.

This is still slightly clunky: we'll produce an annoying "Break Finished" notification at the start of a session if a user previously logged out while a break was running. Still, it feels like healthy progress!