Allow filters to punt by returning empty. Do that in TextFilter for short terms. Ref bug 1060111.

This allows us to ignore shorter-than-trigram textual query terms without saying anything, just as the production DXR does. (There's no need for us to call attention to our deficiencies; I fear that would noise up the feedback we get when we stage the ES branch. A real solution will be reached in the Query Language Refresh. Most likely, we will merge adjacent textual terms into phrases, at least as one of our search strategies.)

As in production, highlight shorter-than-trigram terms even if we're not able to search on them.

Rename BadQuery to BadTerm; we're not giving up on the whole query if one term won't run.
Move ES query building for regexes to trigrammer.

They will eventually become part of the broken-off library along with the rest of the string-extraction machinery.
Drop the Jinja bytecode cache; it was causing test_strings to fail with strange folder-not-found errors. (The errors happened only when rendering in multiprocess workers.)

It turns out that specifying an explicit cache doesn't speed it up at all. It's 5s +/- .1 in both cases for this snippet:

```
    def test_jinja_speed():
        """See how fast Jinja is with and without an explicit bytecode cache."""
        env = load_template_env('/tmp/smoo')
        for x in xrange(1000):
            _fill_and_write_template(env, 'file.html', '/tmp/bar/' + str(randint(1, 10000000)) + '.html',
                {
                 'wwwroot': '/some/root',
                 'tree': 'sometree',
                 'tree_tuples': [('one', 'two', 'three')],
                 'generated_date': 'somedate',
                 'filters': [{'hello': 'there'}],

                 # File template variables:
                 'paths_and_names': [('path', 'name')],
                 'icon': 'someicon',
                 'path': 'somepath',
                 'name': 'somename',

                 'lines': zip(repeat(Markup('kersmoo and a half point of bars'), 200),
                              [[]] * 200),

                 'is_text': True,

                 'sections': []})
```

There may be an implicit cache somewhere, though I don't see it after 10 minutes of reading the Jinja source.
Add RegexFilter. Ref bug 1030313.

All of test_strings passes except test_empty_quotes.

* Percolate is_case_sensitive kwarg through more of the test routines so we could use it in SingleFileTestCase.found_line_eq().
* Index the content field of lines so the script filter can pull it to run the regex against.
Fix test_overall, whose expected result was wrong.