Parse qualified names, but no resolving yet
Add Column objects, qualified name matching, case insensitivity and preservation
Fix column qualification and column passing

Allow Table constructors to accept Columns in addition to column name
strings. Check whether a column is on a given Table before qualifying
it with that Table name.

Failing tests:
- test_join_two_tables_with_sort (query_test.QueryTest)
Add logging, make sort-join test pass, where-clause column ambiguity still a problem
Add logging, rename Column.table property, fix * on joins
Add the Column class and tests
Add ancestor search and test
Add more named result parts to the SQL parse tree
Add Column ancestry tracking, Query wildcard tests

Column 'ancestors' or 'parents' are now tracked. When two tables are
joined, the resulting table contains a column that is the 'child' of the
join columns on the original two tables. Now that we track this
relationship, we can delay application of where conditions until after
the join even if the where condition explicitly specifies a parent
column instead of the child column.

Also, tests were added to QueryTest to verify that asterisk wildcards
are expanded to include all table columns.
Superficial clean-up of fixtures in Query tests
Remove column ordering on sort, fix column reverse-indexing
Refactor instance method Column.search to Column.match
Fix column reordering to product no effects given empty input
Consolidate operations that are identical whether there's a join or not