Adding Metadata to search results.

Search results can now have metadata attached to them using the same mechanism
as the /meta handler uses. The change also includes:
  * Some cleanup of the elasticsearch interface
  * Search Time and Total in search response
  * More tests
tbh though, it's awkward enough writing a Checker that I'd probably
avoid doing it except when it's going to be useful in lots of places.

  func assertResultsContain(*gc.C, SearchResult, []string)

is probably nicer overall.

One other thing: the "conjtain" in ResultsContain seems to imply that the results
can be a superset of the expected values. By my superficial
reading of the code, that isn't actually the case... or is it?