Add an elasticsearch query builder

Noah is using this for a feature he's working on and it seems relatively stable now, so I figure it's a good time to merge it in.  Happy to get feedback on it and iterate.  Includes tests.

The es_query file includes some documentation on usage, and you can see it in action by looking at tests.py.
I don't think it makes sense that if there's an error in the query that this should raise a `KeyError`, I think we can do better than that!