FilteredQueryExtractor was severely broken.  Fix it.

FilteredQuery is now treated the same way as a conjunction query, using a
TermWeightor to determine which branch (filter or query) should be indexed.
FilterTermExtactor is converted to an abstract class and made to play nicely
with generics.

Also adds moar tests.