b/3019621 Collapses AlarmScheduler threads. Do not merge

This adds some logic around running the AlarmScheduler to ensure
that only one version is run at a time. If new requests come in
while a version is already running they will be aggregated every
five seconds.

Change-Id: Idd61dc912796a835f46bfbe4a74837570b41bc06
3 files changed