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
I wanted to remove the temptation to use it as a meaningful value when processing the results. That ID is for elasticsearch to tell the difference between things not for us to get information from, so by making it opaque now it can potentially be changed in future without breaking code that uses it incorrectly.