refactored gitstatus to enable per-collection locking

- Reworked queue and related functions:
  - The queue now lists *all* collections on the Store.
  - Instead of removing items from the queue when collections are
    updated, collections' timestamps are updated.
  - Timestamps reflect the next earliest time collections can be
    updated rather than the last time collections were updated.
    This allows randomization of the interval, which over time will
    spread out updates.
- Reworked next_repo() to handle both global locking (single-user
  VM) and per-collection locking (for Densho HQ shared storage).
- Modified settings to accept a list of config files, so that
  /etc/ddr/local.cfg can override ddr.cfg.
- Added settings to control global/per-collection locking and to
  enable/disable background processing (Celerybeat).
- Modified nearly all functions to use arguments rather than
  settings variables, for easier unit testing.