Adjust the costs in the xBestIndex function of the spellfix1 virtual table
to force the use of the MATCH term if it is available.
Run progress callback checks less frequently in the main VDBE evaluation
loop.  This makes up for the extra CPU cycles used to increment the cycle
counter for SQLITE_STMTSTATUS_VM_STEP.
Experimental "PRAGMA query_only=BOOLEAN" statement that is able to turn
write capabilities on and off.
Fix harmless compiler warnings in the progress callback logic.
Rename the SQLITE_DeferForeignKeys macro to shorter SQLITE_DeferFKs.  Move
the "defer_foreign_keys" pragma into the flagPragma() routine.
Remove the undocumented sqlite3_foreign_key_check() API and replace it with
sqlite3_db_status(db, SQLITE_DBSTATUS_DEFERRED_FKS, ...).  Add test cases
for the new functionality.
Add the "defer_foreign_keys" pragma and the SQLITE_DBSTATUS_DEFERRED_FKS
value for sqlite3_db_status().  This is a cherry-pick of a sequence of five
checkins in the sessions branch between [1d44e5d3c2] and [d39e65fe70].
Add the experimental "query_only" pragma.
Merge recent trunk changes (such as the query_only PRAGMA, the
defer_foreign_keys PRAGMA, and the SQLITE_DBSTATUS_DEFERRED_FKS parameter
to sqlite3_db_status()) into the sessions branch.