[2.0.0] Sqlite dialect createTable support

Improvements over #2832:

* Key indexes are in the create statement now
* savepoint is only used if a plain index is created (sqlite limitation)

Sqlite's auto increment requires a single column primary key be defined with the column definition (as opposed to table definition).  So I set a variable (autocolumn) in the column loop, and check in the index loop to avoid a sql error that would not happen in mysql or postgres.  It translates a primary index to a named unique index automatically.

What I didn't code was the check to make sure the column value is actually the same (see FIXME in code).  I'm not familiar with the return zval (getcolumns) for comparison.