Add a SearchResponse model

This models the response from Rummager, its results, and all the 
additional metadata (eg. facets, start, total, spelling suggestions)
Stashing all my changes so far

I will go back and restructure these commits soon :)