Populate `host_paths.canonical_path`

* HitsMappingsRelations is already doing it for `host_paths` without a mapping, but not elsewhere
* This covers everything else without having to apply temporary hacks to HitsMappingsRelations
Display an estimate of the time remaining.

This will be a fairly crude estimate, and won't be particularly accurate
if the migration speeds up or slows down as populates more rows, but
it'll at least give us an indication of how long we've got to wait.
Merge pull request #461 from alphagov/populate_canonical_path

Populate `host_paths.canonical_path`
Update mySQL-centric comment

* There's still a use for truncate_everything, it just has nothing to do
  with myISAM
* It's now for tests that use transactions and avoiding
  PG::InFailedSqlTransaction
Add precompute_all_hits_views to sites

* Allows us to indicate which sites are considered 'large'
* We'll precompute their All Hits view for those sites
Postgres helpers for materialized views

* Let us do Postgres-y things around views in a Ruby-ish way
* We can create them, check existence, get bodies for or refresh
  them
Materialized views rake task

* For any site where precompute_all_hits_view is true, precompute a view
  that only serves all hits, all-time
* Create if one doesn't exist, refresh if it does
Materialized views quote names correctly

* Allows us to handle odd characters in the view name
  (such as those caused by our own factories)
HitsController can use an all hits, all-time view

* Where the site says it's available via `Site#able_to_use_view?`
* Will previously have been computed as a materialized view by
  `Transition::Import::MaterializedView::Hits`