Use the newer hash response format for searches

This is part of upgrading all clients, and then later we can make the hash
response_style the default.
Upgrade Unicorn

The gem I want to use to do better reloading in dev needs at least Unicorn 4.5.
I chose 4.6.2 because whitehall has been using this for some time safely.
Use mr-sparkles instead of shotgun

These two gems provide reloading of code in development. Shotgun does this by
booting the entire app for every request. This is slow. mr-sparkles on the
other hand, only reloads when files change, so is much faster. Additionally,
shotgun has an open bug in that it doesn't log in development, which is
annoying.

Also this means using unicorn in development, which should be good for dev-prod
parity.

I had to fork the gem and make changes to it. This is because it uses the
Listen library which uses filesystem events if they are available. Filesystem
events are available on our VMs, but don't work for files changed on the host
machine because they're mounted by the VM over NFS.
Use HTTP not git (ssh) protocol in Gemfile

ssh URLs won't work on Travis (apparently) or in our production-like
environments.
Merge pull request #116 from alphagov/use_new_rummager_search_api

Use the newer hash response format for searches
We don't need thin any more

Thin was used with shotgun because shotgun didn't support unicorn. mr-sparkle
does.
Use a released version of mr-sparkle

Our fork got merged. Yay!
Gracefully handle the q param being empty

Until recently we could rely on gds-api-adapters, which would return an empty
array if the query was blank. Now though, we are expecting a Hash, so we get an
errror.

With this change we check the param ourself and reply accordingly.
Merge pull request #118 from alphagov/handle_empty_search_param

Gracefully handle the q param being empty
Merge pull request #117 from alphagov/better_dev_reloading

Better dev reloading
Merge remote branch 'origin/master' into grouped-related-links