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.
I suppose it would be better to throw a failure rather than an error in that case, but I'm inclined to come back to that later if it becomes annoying.