CYB-226 Engagement Index should be frequently, automatically, updated

* In this part, the async workers are created for the updating
* Includes some refactor of the processors to avoid duplication (i.e., to  have
   api call paths in one place)
* Reintroduces redis and sidekiq for the worker processing

[CYB-226 Engagement Index should be frequently, automatically, updated](https://jira.ets.berkeley.edu/jira/browse/CYB-226)
We did remove Sidekiq, but that was when I learned that Redis was only at 2.4.  "Sidetiq" was a nice, simple timer gem built on top of Sidekiq.  It required Redis 2.6+, so I removed both Sidekiq and Sidetiq.  Now that I plan to use clockwork, I am reintroducing sidekiq.  Sidekiq is needed at this stage to handle the job processing (and Sidekiq itself only requires Redis 2.4).