Debug option to explain query ranking

Currently, it's often very hard to say exactly why a document has been
returned at a particular position - especially because the indexes on
preview and production are often different enough that the rankings are
quite different.  For example,
https://www.gov.uk/search?q=small+business+pension+rules currently
returns https://www.gov.uk/foreign-travel-advice/thailand as the top
result, and I can't figure out why.

This PR makes use of elasticsearch's "explain" option to return full
details of the calculation performed, which should make this much
easier.  The output takes the form of an extra "_explanation" key in
each search result, which is a tree of information reflecting the values
calculated throughout the query tree.

The returned information could be displayed in the search result list,
but until/unless work is done on frontend to enable that, it will only
be accessible via the API (ie, /api/search.json).  This is still very
helpful.