Move AlarmManager work into an AlarmSetter

The AlarmSetter is triggered on boot in addition to when MainActivity
starts. There appears to be no simple way to "schedule the alarm for
this PendingIntent only if not scheduled", but instead we get the
behavior of "replace any existing scheduled alarm" which is good enough.