Query Invalidation triggered by DDL, phase 1

This first check-in implements most of the framework which will
be used to complete the QI DDL feature. It redefines the old
security invalidation key (SQL_SIKEY) to handle DDL operations in
addition to REVOKE. In a limited number of DDL operations, the object
UIDs of affected Seabase objects are propagated to all nodes for
use by the compiler to invalidate NATable cache entries, as
well as a limited number of types of cached queries. Later this
month, the framework will be complete by allowing prepared queries
that have already been returned from the compiler to be invalidated.
Then the next step for the framework will be support for invalidating
the HTable cache. Finally an effort will be made to cover all of
the necessary DDL operations and all types of cached queries.

The check-in include a new regression test (executor/TEST122) that
demonstrates the cases that are covered. Specifically, a table will
be dropped and recreated with the same name but different definition
in one sqlci session. In another session, which has already populated
NATable cache and query cache for INSERT, UPDATE, DELETE, SELECT,
SELECT COUNT(*), INVOKE and SHOWDDL statements, those some types
of statements will be resubmitted and correctly compiled.

Change-Id: Ie61ce751089b57ce1894f1764c338e9400bb7b8a
Closes-Bug: #1329358
Implements: blueprint ddl-query-invalidation
Merge "Query Invalidation triggered by DDL, phase 1"