Fix problem with extents from UnionFilter.

The calling code expects this to return results sorted and unique and
the previous code did not guarantee either.  This would result in
strange results in the search highlighting such as missing entries
or lines that got portions displayed more than once.
Fix UnionFilter being too liberal with the 'OR's.

Previous behavior was to combine all conditions with OR.  In the case
of a query like "type:Foo type:Bar", this found all types matching
either Foo or Bar.  This is in contrast to all other searches that
would would instead first find a list of files matching all terms
and then display all lines within those files matching any term.

This should make type: behave like function: and var:
Fix 2 UnionFilter bugs: the line-duplication one and the overzealous ORs. Closes #111.