alarms.js revamp, bridging the interface and background. (untested, part 1)