[r=rvb][bug=1381615][author=allenap] Backport r3262 from lp:maas: When starting monitors, cancel and reschedule an existing monitor with the same ID.
Previously, when a monitor was rescheduled, an existing monitor with the same ID was not cleaned up, and would eventually expire. Whichever of the monitors with that ID to expire or be cancelled first would work correctly. However, each monitor with that ID after that would crash with KeyError in monitor_expired().