Lots of fixes

* Handle more then 8 terms matching
* Properly cache term weights
* Speed up highlighting many query types by writing them as automata rather
then rewriting them.  For the most part this is faster by definition, but
some intersections _might_ be slower.
* Reuse DocsAndPositionsEnums that don't match the highlighted document.
* Move the elasticsearch test into our namespace

Change-Id: I9e9a5ca9e836ff72c9edbf560cf737db0a7d17e8