Validate New URL against whitelist in database

Whitelist copied from Bouncer.

Conflicts:

	spec/models/mappings_batch_spec.rb
Remove redundant http_status code

We've rewritten history in the versions table to pretend that it was always
Mapping.type, not Mapping.http_status.
Extract hostname validator
Add validations to WhitelistedHost
Admin UI for viewing/adding to Whitelisted Hosts
Merge pull request #297 from alphagov/remove_redundant_code_in_versions_helper

Remove redundant http_status code
Merge pull request #273 from alphagov/validate_new_url_in_whitelist

Validate New URL against whitelist in database
Eager load site -> hosts for filtered mappings
Eager load taggings => tags for mappings

* also rephrase the _tags partial so it uses the eager-loaded collection
  over tag_list, which doesn't participate in load caching
* this means that we don't query tags once per row in the index, instead
  just referring to things we pre-loaded in the filter
* Around 70-80% improvement in filtered mapping load speed
Switch Host#excluding_aka to an indexed column

* Was using unindexed with a LIKE
Optimise User#can_edit_site?

* It won't change within a request, so cache the result on first
  access.