Change the "no filtration" return value from {} to None.

That makes it less verbose to write self-skipping filters and is consistent with how we're doing it in direct searchers.
Add plugin API and calling machinery for direct searchers.

Add an __all__ while we're at it, to make clear what's public.
Add the first ES direct searcher: the one for path:line_num.

test_line_number now passes. Move the skips around so we can run it.

Rewrite the direct-search test method so it's more integrationy. Lift it up to dxr.testing.TestCase. The method was coupled to SQLite before and had thus quit working.
Merge direct search into es. Fix bug 1068161. Close #345.

Since the es branch has had progress in the meantime that makes the clang plugin less of a no-op, we also do the following in the merge commit to make test_direct pass:

* Remove counterproductive initializations of some instance vars from TreeToIndex that were hiding failures which would otherwise have been nice, shallow AttributeErrors. That's all there was in the constructor, so remove the constructor, too.
* Use the right attr name: _inherit rather than inherit.
* Comment out the attempt to add a jump definition to the ref menu. src is an int, not a path. There's not even a path in `prop`.
* Return the correct types from _common_ref(): ints, not Positions.

The whole of _common_ref and its callers will probably have to be rewritten, as they're full of type bugs, make invalid assumptions about the shapes of CSV files, and don't pass the global-file offsets we need for accuracy down to the layers that need them.