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.
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
Remove another assignment on ActiveRecord

- This would again complain about whitelisted parameters, when I tried
  to run the rails console.
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.
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 site_yaml_file.rb

- Thanks to @rgarner for the `=~` tip, and https://github.com/alphagov/transition/commit/77ff1686c0271158f315bcbc851a032a141b0362.
Use `=~` instead of `eql` to make orgs_sites_hosts_spec pass

- This is 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. Again, thanks to @rgarner.
We no longer need to patch action_controller/template_assertions.rb

- Rails 4 implements the things we needed to backport to Rails 3.
Remove attr_accessible from the user model

- This uses Whitehall's implementation of overriding attr_accessible,
  because Rails 4 errors when it encounters attr_accessible, but the
  gds-sso gem is still using attr_accessible. Found through @jennyd and
  https://github.com/alphagov/whitehall/blob/11b5293230c318ebca3444b5bc700841ca4810f6/lib/attr_accessible_noop.rb.