Make UnionFilter work with multi-table subfilters.

Also...
* Add join_arguments param to keep params in order: join clauses come before WHERE conditions.
* Some params from RegexpFilter weren't embedded in a list like they should have been.
Fix a couple broken/invalid tests.
Allow filters to skip themselves if their args are empty or otherwise meaningless.

All of test_strings.py now passes.
Fix invalid query parser tests.

They have to adapt from the result being a dict of filter types to it being a list of terms.
Make the query visitor return [] for 0-term queries.

This makes test_empty pass, so all of test_query_parser now passes.
Add a test for ANDing a structural with a text filter.
Fix a bad comparison in single_term(), which fixes all the test_direct tests.
Fixed a screw-up in the translation of the overridden: filter.

This makes all of test_overrides pass.
Switch from presumed location to "spelling" location when computing line and column offsets in the clang plugin for all entities.

This makes all test_macros tests pass.

I'm not sure if there's the potential for the filename to be different between a spelling location and a presumed one. If there is, we have some more fixing to do, but this is at least an improvement.