Provide a per-deployment cache for cluster coordination needs.

Initially, this will be used for jobs coordination.
Make :singleton at-style jobs behave properly in a cluster [IMMUTANT-146]

If an at job is scheduled in a cluster and is singleton, its status is
written to the coordination cache when it starts and when it
completes. If another job gets the singleton baton and has the same
job scheduled, it will check and see if the job has completed and not
schedule itself if so.

For jobs with a :repeat, each trigger updates a count for the job in
the coordination cache. If the same job on another node takes over, it
will reduce its own :repeat value by the count before scheduling.