Record state for each MappingsBatchEntry

This will let us display progress to the user.
Don't queue batches repeatedly
Show a flash message of bulk add status
Make spec deterministic
Show outcome of background bulk add
Clear old mappings batches

We don't want ephemeral data hanging around forever.
Disable Sidekiq retries

Sidekiq will perform 25 retries over approximately 21 days using an exponential
backoff algorithm. We probably don't want mappings being changed days afterward
so let's never retry.

This is fairly drastic - we could have 6 retries which would be attempted over
6 minutes, but the MappingsBatch state field behaviour is incompatible with
retries - it would mark them as failed after the first attempt.

If we wanted to add retries back in, we'd need to change MappingsBatch's model
of state to cope with it.
Handle invalid URIs in MappingsBatch validation
Improve the validation messages on bulk add
Fix bug in detecting hosts for another site

It wasn't deduplicating the hosts list, so when it compared with the (unique)
list of hosts in the database, it gave the wrong answer.
Show number with delimiter

Good UX, now that we have large batches of mappings.
Show only a preview of the mappings to be created

Showing all mappings to be created for very large batches led to enormous
view rendering times (and hence timeouts).