Port direct search to ES.

This implements the framework (registration and running of direct searchers) and a first, proof-of-concept searcher.

I recommend reviewing this one commit at a time.

This will close https://bugzilla.mozilla.org/show_bug.cgi?id=1068161.
Yep, it will explode, and it should. All direct searches end up having a from= querystring arg, so, if there's no question mark, that means a direct result didn't happen.