WIP
WIP
Major refactoring of the API

You now pass in a CandidateMatcher to match(), which does it's own reporting of
how the various candidate queries match a document.

The Monitor takes a query parser as a dependency, and uses that to parse text
strings on update.  Parsed queries are stored in a Cache, keyed by the textual
form of the query, which is stored in the query index as a docvalues field.
Update artifacts name for branch testing
Add Monitor.getQueryCount()
return QueryError with query ids from update, rather than exception list
ensure IntervalsMatcher uses separate collectors for query and highlight
add IntevalsMonitor with sugar method for retrieving IntervalsMatcher
allow empty highlighter queries, in addition to nulls
Record milliseconds, not nanoseconds
Add a MatcherFactory for type safety
QueryMatch is unnecessary - adds nothing to IntervalsQueryMatch
Add ScoringMatcher
Only record scores > 0 in ScoringMatcher
MonitorQueryParser should be an interface, not an abstract class
Rename 'impl' package to 'presearcher'

As that's what's in there...
Make Presearcher an interface

The presearcher doesn't need to keep a reference to it's parent Monitor any
more, so we can remove that and make it an interface instead.
Move presearcher test classes to presearcher package
Allow extra filtering of document tokens in presearcher query construction
Move term extractor tests to termextractor package