Rudimentary rake-based benchmarking

Gives us a simple base from which to make perf-related changes. At time of
commit, default 1000-run benchmark results were:

vagrant@development:/var/govuk/bouncer$ bundle exec rake benchmark:all
              user     system      total        real
no host:  1.020000   0.080000   1.100000 (  1.434709)
410:      0.690000   0.050000   0.740000 (  1.013773)
301:      0.700000   0.040000   0.740000 (  1.024336)
404:      0.750000   0.000000   0.750000 (  1.045783)
Use ActiveRecord::QueryCache as middleware

Avoids repeated queries to the database for queries whose strings are identical
in the context of the current request.

vagrant@development:/var/govuk/bouncer$ bundle exec rake benchmark:all
                user     system      total        real
  no host:  0.940000   0.070000   1.010000 (  1.152042)
  410:      0.660000   0.010000   0.670000 (  0.777661)
  301:      0.660000   0.010000   0.670000 (  0.767946)
  404:      0.650000   0.010000   0.660000 (  0.768585)
Move to a scope-based host find

* In anticipation of eager-loading site and organisation
* This should be a no-op isolated to a separate commit to make clear the changes
  required to test doubles
* In fact, there's a slowing down:

vagrant@development:/var/govuk/bouncer$ rake benchmark:all
              user     system      total        real
no host:  1.150000   0.080000   1.230000 (  1.376627)
410:      0.730000   0.000000   0.730000 (  0.845800)
301:      0.720000   0.000000   0.720000 (  0.837222)
404:      0.740000   0.000000   0.740000 (  0.843810)
Started to attempt to eager load just :site.

Note that the tests don't pass here because they're mock-heavy and brittle,
and it's not worth the effort to change them, because:

Performance disaster:

vagrant@development:/var/govuk/bouncer$ rake benchmark:all
              user     system      total        real
no host:  2.530000   0.060000   2.590000 (  2.881489)
410:      2.130000   0.000000   2.130000 (  2.415847)
301:      2.130000   0.010000   2.140000 (  2.429308)
404:      2.010000   0.010000   2.020000 (  2.300594)

It's not worth trying to do this. Things get even worse when you try `:site => :organisation`.