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.