- Add the TEMPORARY keyword to create table support in the parser.
- Break apart projecting execution steps into two separate classes - one for regular query steps
  (still projecting execution step), and one for redistribution steps (redistribution execution step),
  in preparation for changes around create temporary table.
Refactor the nascent pe table infrastructure used for create table as select into
a more general structure, a ComplexPETable, which can be used for both userland
temporary tables and create table as select tables, which will allow us to support
create temporary table as select.
Intermediate commit - arrange to mark tables as temporary.
Merge branch 'kanzaros' into kanzaros_cta
More changes for temporary tables:
- Add a catalog entity to back temporary_tables and global_temporary_tables.  Add
  info schema tables for same.
- Arrange for the emitter to emit the TEMPORARY keyword appropriately.
- Add a new schema subtype (TemporaryTableSchema) to hold temporary table definitions with their
  interesting lookup rules.
- Switch DDLCallback and NestedDDLCallback from interfaces to abstract classes.
  Add two new methods on DDLCallback: onRollback & onCommit.  Use these to arrange
  to populate the TemporaryTableSchema on the context for the connection as appropriate
  on create table.  Still to do: use them to handle drop table.
- Introduce a new class, a TableResolver, which encapsulates the resolution logic.
  Use it in place of bespoke methods.  The primary purpose of this class is to unify
  table resolution code, and make it easier to insert the temporary table lookup.
  There are still some spots using the existing bespoke methods, these need to be
  cleaned up.
- More changes in ComplexPETable to handle temporary tables - in particular ensure
  they have no persistent representation.
- Add worker group pinning.  Worker Groups keep a counter of how many temp tables are
  on them, and will not allow themselves to be purged if any temp tables are outstanding.
More fixes relating to temporary tables:
- Enable drop temporary table.  If the argument is a non temporary table, complain.
- Added support for alter, drop.  In the case of drop, arrange to clean the TemporaryTable record
  from the catalog.
- Switch to all primitives for TemporaryTable, still need to do cleanup on shutdown/startup
- Switch drop table to a ddl callback in order to update the pin count on the worker group
  and the temporary table schema at the appropriate time.  Migrate the postCommitAction from
  QueryStepDropTableOperation to the callback, remove the special execution step.
- Add a flag to qso:multitupleredist to force redist through an extra temporary table if
  src & dest groups are the same and any userland temporary tables are involved (either src
  or target).
- Allow TableKeys to be frozen in the cache (disconnect any parser info)
- Create an autoinc interface.  Make TableKey implement it.  This mostly hides the
  autoinc tracker location from the caller.  Add a dumb transient tracker to ComplexPETable
  for userland temporary tables.  Add a TemporaryTableKey for purposes of quickly detecting
  the presence of userland temporary tables and handling autoinc access.  Arrange for
  the AutoIncrementBlock to use frozen table keys in place of direct schema references
  to TableScope or PETable.  Also arrange to use TableKeys around autoinc access for
  show create table.
- Add scoping to information_schema.temporary_Tables in order to limit to current connection.
- Arrange for show keys, show columns, describe to work correctly for userland temporary tables.
- Fix recreate for ComplexPETables - specifically note the autoinc flag
- Slightly restructure persistence around PEColumn to support yanking the external type def
  out of a userland temporary table column by creating a mostly empty UserColumn.
- Ensure that column key flags are updated correctly in the tschema.
- Add an upgrade for the new TemporaryTable entity.
More changes for temporary tables:
+ Arrange to use a nonmutable schema source for temporary table declarations.  Modify PE.g to
  ensure that we flip back to nonddl mode when handling temporary table declarations.
+ Add startup/shutdown catalog cleanup methods, which remove any user_temp_table rows for the
  local server.  Also add a membership listener that force closes all connections with temporary
  tables upon the local member leaving the quorum.
+ Restructure some of the emitter around drop tables in order to support dropping temporary tables
  on databases that have already been dropped.
+ Arrange for worker groups that are pinned to not be recycled upon statement finish.
+ Arrange for SSConnection to drop any outstanding temporary tables upon close.
Make debug log less noisy.
Merge branch 'master' into kanzaros_cta

Conflicts:
	tesora-dve-core/src/main/java/com/tesora/dve/upgrade/CatalogVersions.java
	tesora-dve-core/src/test/resources/com/tesora/dve/upgrade/catalog_version40.sql
	tesora-dve-core/src/test/resources/com/tesora/dve/upgrade/infoschema_version40.sql