Add hit_count to Mapping

* For precomputation to assist Sort By Hits
Micro-optimise Site#hit_total_count

* Get it in one hit, don't iterate rows
Make spec language consistent

* We only use "should" in assertions
Refactor Import::HitsMappingsRelations

* Instance it so we're not passing around site
* Remove some duplication around IN clauses
Precompute mapping hit counts

* Part of Import::HitsMappingsRelations.refresh!
* Not too onerous a query
Remove Mapping#with_hit_count

* expensive scope
* hit_count now precomputed and available as an attribute on Mapping
Merge pull request #327 from alphagov/precompute-mapping-hit-count

Precompute mapping hit count
Update all of the gems so that Rails 4 works

- I've probably missed some, but there'll be further updates as I go
  through every error that now exists.
- Rails 4 deprecates the :assets group within the Gemfile.
Fix some errors that came before any red tests

- Not entirely sure what these change, but I've done what the error
  output told me to do to fix the error:

  - Eager load the application only in production.
  - Remove the mass-assignment protection and the whitelist attributes
    ActiveRecord setting - this is done by strong_parameters in Rails 4.
  - Remove the unused ActiveResource config line.
Specify which HTTP methods to call on each route specified by match

- Using match on its own is deprecated.
Make RSpec render_views work again by including a new config line
Require 'rspec/expectations' and 'rspec/mocks' in spec_helper.rb
Remove deprecated specifying of which error is being raised
Remove the deprecated config.whiny_nils in dev and test
Use the new Rails 4.0 syntax for scopes
The use of stub (in some cases?) is deprecated - use double instead
Make controllers use strong parameters

- Versions, mappings, whitelisted_hosts, organisations, hits, sites,
  mappings_batch.
Add config.secret_key_base to secret_token.rb

- Rails 4 needs this, apparently. Corresponding PR opened:
  https://github.gds/gds/alphagov-deployment/pull/633, which will
  replace 'overwritten' with an actual key. Is this fine as
  'overwritten'?
Fix failing tests on orgs_sites_hosts_spec and site_yaml_file_spec

- Use `=~` instead of `eql`, because RSpec was comparing an array to a
  CollectionProxy object. Using `=~` makes it compare just the values,
  e.g. 1 == 1, therefore they're actually the same values.
- Thanks to rgarner for the `=~` tip, and https://github.com/alphagov/transition/commit/77ff1686c0271158f315bcbc851a032a141b0362.
We no longer need to patch action_controller/template_assertions.rb

- Rails 4 implements the things we needed to backport to Rails 3.