Added Sidekiq gem to Gemfile.

It shoul help with reducing memory usage in background server.
WIP: migrate Resque jobs to Sidekiq workers. Added Sidekiq initializer to configure Redis URL.

The Redis URL is retrieved from the secrets.yml file. Unlike Resque, the URL for Sidekiq must be in the form "redis://<host>:port" with optional instance id.
WIP: migrate Resque jobs to Sidekiq workers.

Workers that are performed periodically should not be retried by Sidekiq.
All Sidekiq workers save any error backtrace when an error is raised.

The error backtrace can then be visualized through the web UI.
Sidekiq now has the same queues (subscriptions, update_feeds, maintenance) that Resque had.

Queues are also weighted so that more critical workers are checked more often. This seems superior to Resque, in which worker processes were assigned a single queue.
Added sidekiq web ui under the /sidekiq path.

The web ui is currently unauthenticated, unauthorized.

See: https://github.com/mperham/sidekiq/wiki/Monitoring
Added unit test for CleanupInvitationsWorker (the only resque job converted to sidekiq worker, for the moment).
Show link to sidekiq web ui in the user menu.

For the moment everyone sees the link. Obviously we will want to show it only to admins, and furthermore to restrict URL access to authenticated admins.
Restrict access to the sidekiq web ui to authenticated admin users.
Converted CleanupSignupsJob into a sidekiq worker.
Conveted DestroyOldJobStatesJob into a Sidekiq worker.
Converted DestroyUserJob into a Sidekiq worker.
When exporting subscriptions in OPML format, order feeds by title.

This makes the OPML more readable and, perhaps more important, makes order deterministic which helps testing. Some intermittent problems testing this feature should go away.
Converted ExportSubscriptionsJob to a Sidekiq worker.
Converted FixSchedulesJob into a Sidekiq worker
Converted ImportSubcriptionsJob into a Sidekiq worker.
Converted RefreshFeedJob into a Sidekiq worker
Converted ScheduledUpdateFeedJob into a Sidekiq worker.

Some tests now fail because for the moment the old Resque job is being enqueued from the app, instead of the new Sidekiq worker.
Converted SubscribeUserJob to a Sidekiq worker.

Currently some tests are failing, because they are querying Resque to ask for enqueued jobs. When the tests are changed to use Sidekiq's testing API instead, they will pass again.
Converted UnsubscribeUserJob to a Sidekiq worker