Upgrade to Ruby 2.1.4
Merge pull request #448 from alphagov/upgrade_to_ruby_2-1-4

Upgrade to Ruby 2.1.4
Bump admin gem to 1.1.7

* Fix lead styles when using the `text-muted` class
Merge pull request #450 from alphagov/fix-lead-styles

Fix lead styles when using the `text-muted` class
Remove path_hash everywhere but the DB

* Add `canonical_path` (with index) to host_paths to compensate
* Change NOT NULL path_hash fields to NULLable (or we'd still have to calculate them)
* Cope with any possible rollback in the migration's `down`
Merge pull request #449 from alphagov/remove-path-hash-from-transition-entirely

Remove path_hash everywhere but the DB
Revert "Remove path_hash everywhere but the DB"

This reverts commit 08b1a93cbaa74b455ea50067921aa10dcc05de79.

We need to do this because we've spotted that we've put a unique
call in the wrong place, leaving an index non-unique. This could
be reverted in a second migration, but we also spotted that
we haven't dealt with the plethora of NULL in the new canonical_path
column that a new UNIQUE would require. At time of commit, this has
only reached preview, so we'll massage the indexes there.
Merge pull request #451 from alphagov/temporarily-revert-path-hash-removal

Revert "Remove path_hash everywhere but the DB"
Remove `path_hash` everywhere but the DB

DB:

* Leave `hits` and `mappings` `path_hash` `NULL`able so that existing
  processes are not disrupted
* Add `canonical_path` to `host_paths` to replace `c14n_path_hash`
* Populate it using the private
  `HitsMappingsRelations#connect_mappings_to_host_paths`
* Move the UNIQUE `host_paths` index from `(host_id, path_hash)` to
  `(host_id, path)`
* Cope with any possible rollback (including backfilling `path_hash` for `hits`
  and `mappings` in the migration's `down`)

Code:

* Remap usages of `host_paths.c14n_path_hash` to
  `host_paths.canonical_path`
* Replace usages of `path_hash` with appropriate plain
  `*path` alternatives
Merge pull request #453 from alphagov/remove-path-hash-redux

Remove `path_hash` everywhere but the DB
Put selectable table back into Transition

* Removed from admin gem as the module is specific to Transition
* Bump gem and put the javascript module and styles back
Merge pull request #454 from alphagov/add-select-rows-js

Put selectable table JS module back into Transition
Lowercase hosts and aliases when importing from site YAML files

- This is so we don't import uppercase hosts or aliases which then
  Bouncer can't handle.
Lowercase any host added to the whitelist
Flip the uniqueness constraint on `Mapping`.

While the effect is the same either way (that no two `Mapping` objects
can have the same values for both `path` and `site_id`), it's clearer
this way around that the idea is to ensure no two mappings exist for the
same path in a site.
Merge pull request #455 from alphagov/reword-uniqueness-constraint

Flip the uniqueness constraint on Mapping
Merge pull request #445 from alphagov/lowercase_hosts_in_import_and_whitelist

Lowercase hosts on import and when adding to the whitelist