Maintain backslashes in front of nonliterals like . and $.
Fix FILE-domain search results. They were all crashy and wrong.
Get PathFilter working by hooking it up to the JS regex rewriter. Refs bug 1030313.

You should now be able to fire up test_basic and run path queries, complete with globs.

* All of test_basic passes except test_structural_and, which awaits a working `function:` filter.
* We introduce a new exception BadQuery, which filters can use to complain about user errors that keep the query from running. In a later commit, we'll catch this and display it instead of 500ing.
Fix a typo in a comment.
Get the path filter working. Close #329. Ref bug 1030313.
Stick the whole DXR index in a single shard. Close #330.

This should be faster, according to the benchmarks at http://blog.trifork.com/2014/01/07/elasticsearch-how-many-shards/.

Also, crank up the refresh interval. This will flush the indexing buffer out to disk less often, resulting in fewer Lucene segments, which should yield faster queries before they merge and less merging to do.
Fix the FILE/LINE superset problem with documentation for now. Fix bug 1058945. Close #331.

We can change the API to make it more automatic if it turns out to be a burden for plugin. In that case, most likely just move the folder, name, size, modified, and is_folder fields (the ones that aren't touched by queries) out of the core plugin and into build.py itself, then have something deep_update() LINE mappings with their corresponding FILE ones.