Introduce Clockwork for scheduling jobs.  #3127.

I wanted to keep scheduling inside Cases' web workers, but that has a
few problems:

1. It requires locking to avoid duplicate scheduling, which wasn't
   implemented.
2. It doesn't actually work in Passenger under MRI 1.9.3.  The way those
   two components interact prevents background threads from running.

Solution: move scheduling into a separate process.

I'd like to keep the scheduler process footprint very small.  This means
that the scheduler code (if I can help it) will *not* run through Cases'
boot process.

Since the scheduler is just triggering jobs to run in a Sidekiq process
this should be doable, but it may require some surgery to separate
configuration code (which, except for the Rails environment, can be done
without any references to the Rails object) from code that uses said
configuration to modify the Rails object.
Move the watchdog worker to a separate file.  #3127.
SidekiqConfiguration uses definitions from RedisConfiguration.  #3127.
Don't augment Rails.application unless we're in a Rails app.  #3127.

(The clockwork process shouldn't need to have the application
environment loaded.)
First cut at Clockwork configuration.  #3127.

This doesn't yet work because NcsNavigator::Core::RedisConfiguration
contains code that can only be evaluated with the Rails application
environment, but I thought it should be committed anyway so that others
can see what scheduled jobs ought to be like.

Separting RedisConfiguration from Rails will be tricky, but I think it's
doable.  The major points that need to be addressed is removing
ActiveRecord::Base and Rails.logger references from the code.