Talk to rummager via delayed job

Both Searchable#update_in_search_index, and Searchable#remove_from_search_index now create a delayed job worker to actually communicate with rummager.
Add Searchable#reindex_all for job based reindexing of all instances

This is different to Searchable#search_index, which provides a similar function.

* reindex_all creates a job for each instance suitable for searching, asking it to add itself to the Rummager index
* search_index returns an enumerator that yields the search_index hash of every instance suitable for searching.  It does not communicate with Rummager directly, but the enumerator returned can be used as the first param to Rummageable.index.
Add without_delay! helper for tests to make delayed job be synchronous

It's included in tests by default, and is enabled on cucumber scenarios tagged with @without-delay or @not-quite-as-fake-search (because wanting a real-ish search implies we need to send things to rummager properly).
Searchable#reindex_all rejects at the instance level, not class

This allows us to to Edition.reindex_all because Edition is not a searchable_class, but all the concrete edition subtypes are.  Also we have tests that prove that reindex_all will respect chained scopes (so we can do something more useful like: Edition.published.reindex_all).
Make reindexing all related editions for a policy a delayed process

It was still too slow in a single request/response cycle to create all the jobs for a policy with large numbers of related content, so we make that part of the process a job on it's own.
Add a queue name to the rummager jobs

This should mean we can spin up separate workers for these jobs if we need to.