rowcache: improved handling of unrecognized statements

Moved the handling of unrecognized statements into a separate call
in query_engine. This allows query engine to make better decisions about
the table based on whether it's cached, etc.
I also found a bug in SchemaInfo.createTable: If a table with overrides
is altered, then the overrides need to be re-applied. Otherwise, things
will get very criss-crossed.