Added support for Joins and M2M, fixed some bugs.

Fixed bug that would produce errors when String() was called twice on
the same query object.

Added IncludeOffset helper that includes the result offset in the query.

Added InnerJoin helper that includes an inner join expression in the
query.

Added some helper methods and parameters around returning column names
and fields as quoted vs. unquoted, absolute vs. relative.

Added reflect helpers to automatically construct M2M table names and
field lists, as well as interact with those tables.