Use stemmer_english

This less aggressive than the current stemmer.
Add in shingled query analyzer

An attempt at a more sane way of doing shingles.
Adjust format weightings

Inside gov results are coming above mainstream for some of our top 200 user needs. Adjusted the weightings to prevent some of this.
zOMG new query!

This gives us:

1. Exact phrase match. Eg when you search for "otters for bank holiday win", it will look for the exact phrase match within a SINGLE field, like in a title.

2. Phrase match. Eg when you search for "otters for bank holiday win", it will match ALL terms within a SINGLE field, where the terms are not necessarily next to each other. Eg. indexable content="one woman says that otters are full of win and she can't wait for a bank holiday".

3. Term search. Eg when you search for "otters for bank holiday win", it will match ANY of the terms found across ANY of the fields. indexable content="bank holidays are full of win". This includes minimum_should_match, which will reduce irrelevant results.
Revert "Adjust format weightings"

This reverts commit 76154a4bc45cad13f7f8454740cff988771c3c4f.
Put stemmer overrides back in
Update tests to reflect new query structure.
Re-write shingle query test to reflect new query
synonyms need to come before stop words

'will' is currently a stop word, 'will' is also in the synonyms to expand out into 'wills' to help cater for content that is about Wills.
Merge pull request #112 from alphagov/upgrade_elasticsearch_0-20-6

Upgrade elasticsearch 0 20 6