Move search indexing from delayed job to sidekiq

As well as creating a new sidekiq-compatible workers to perform search
indexing and deleting of whitehall models, this also introduces a new
interface that hides the background-jobiness of the actions, i.e.
the Whitehall::SearchIndex.add and delete methods. This reduces the
number of integration points for search index actions and hides the
search index mechanisms away from the client code.

Note that the existing delayed job worker code is left in place. This
is so that any existing jobs that may be queued can still be run. The
code can be removed once the backlog of jobs has been worked off.
Update ForcePublicationAttempt to use sidekiq

Once again, the existing job is left in place for deletion later once
the backlog of delayed jobs have completed
Cleanup delayed_job testing helpers

These are no longer required in the tests as all jobs now use sidekiq.
Sidekiq jobs are worked off inline during the test unit tests.

This also bumps the sidekiq gem so that we can take advantage of its
new test helpers to control whether jobs are performed inline or not
for specific tests and cucumber scenarios.
Remove legacy delayed job worker code

Now that the sidekiq-powered jobs have been deployed and the remaining
delayed jobs have been performed, we can remove these legacy jobs from
the codebase.