Do not run the tests in with2.test with SQLITE_OMIT_CTE builds.
Remove an unused #define and add an assert(), both associated with WITH logic.
Handle a few obscure problems that could manifest if a database corrupted in a certain way was written by a connection in the middle of a SELECT statement on the same db.
In where.c, do not allocate space in sqlite3_index_info structures for the internal WHERE clause "terms" generated to record column equivalencies.
Add support for the LEVEL pseudo-column in the recursive part of
a common table expression.  LEVEL has the value of 1 on the first iteration
and successively larger integer values of subsequent iterations.  It cannot
have a table qualifier.  Actual columns named "level" can still be accessed
by including the table name qualifier.
Fix a couple comment typos and one overly long line.  No functional changes.