Implement notification repeat feature.

As discussed and agreed on in #393.
Fixes #393. Fixes #1131.
alarmManager.cancel() uses filterIntent() for matching, so this can be stateless and you should only ever need one of these.