Simulate Cases authorization and internal failures.

The former can happen due to CAS PT processing taking too long; the
latter is just the way life goes.
Generate and return a status URL for an EventSearch.

Also stub out the associated GET /api/v1/event_searches/:id/status
endpoint.

Further commits will add functionality to the frontend to periodically
poll this URL for search results.

Just a rationale: This won't be backed by an Ember Data model because
there's no point in doing so.  Event search status *could* be
treated as a resource and subject to all of the machinery that Ember
Data brings to bear, but we really just need that information to update
stuff in the page.
Queued jobs need to capture the user's PGT.

Yes, I know it's possible for the PGT to expire between this and job
execution.  Nothing that can be done about that, though.
A query executor.

Coming up next: translating this into status data.
Use the query executor to retrieve data from Cases instances.

This gives us retry, timeout, and parallel execution.