Introduce "Pending" state for snapshots

This commit is in preparation of adding workers to do snapshotting and
snapshot comparisons. Before that can happen, we need the snapshot page
to be able to handle rendering a snapshot before it has the snapshot
image available.

I simplified the "Status?" display a bit and removed dates next to
accepted/rejected. If we need this to be around, we can add them back.
But for now, the pragmatic approach seemed to be to keep it at a simple
string.

The snapshot card will display a big timer icon in case the snapshot is
in "Pending" state.

Most of all, this commit adds specs around the different states a
snapshot can find itself in.
Run snapshotting and comparing asynchronously

This commit introduces Sidekiq, and defers snapshotting and snapshot
comparing to after the snapshot has been initialized.

I looked at multiple different alternatives before deciding to give
Sidekiq a try. The project seems very active and robust. I tried to find
something that didn't require Redis (yet another dependency), but
eventually decided that it's probably worth the dependency after all.

This page lists a bunch of alternatives:
https://www.ruby-toolbox.com/categories/Background_Jobs

For specs, I choose to simply run all background jobs synchronously.
Remove spinner from "Create new snapshots" button

Now that we are generating snapshots in a background task, hitting the
"Create new snapshots" button has an immediate effect. So we can safely
remove the spinner and the custom javascript.
Fix redirect after destroying snapshot

This was incorrectly redirecting to the Url page (which no longer
exists).