Updated search API to not hit database (bug 851588)

There are a few things left to do here but overall this is pretty close so I'm getting a PR ready if anyone wants to look and comment. I plan on merging this on Friday.

Left to do:
- [x] Review mapping for strings I can apply `not_analyzed` to. (Filed bug 873606)
- [x] Review the "TODO"s. If the search results don't use the data I'll skip it for now and add those if/when we show app details pages straight out of elasticsearch.