Add extended error code SQLITE_BUSY_SNAPSHOT - returned in WAL mode when a read-transaction cannot be upgraded to a write-transaction because it is reading from a snapshot other than the most recently committed.
The undocumented and unsupported ".selftest" command in the command-line
shell utility is now only available if compiled with SQLITE_DEBUG.  Also
fix a windows compiler warning in that command.
Improved handling of backslash escapes on double-quoted arguments to
dot-commands in the command-line shell.
If the filename argument to the ".import" command in the command-line shell
begins with '|' then treat it as an input pipe rather than a file.
Add a test to ensure that if BEGIN IMMEDIATE fails with SQLITE_BUSY, it does not leave the user with an open read transaction (unless one was already open).
Make sure that sqlite3_stmt_readonly reports false for
PRAGMA journal_mode and PRAGMA wal_checkpoint.  Ticket [a589ec069e3].
Also keep track of whether a prepared statement does no reading or
writing.
Fix an error in e_expr.test.
Refactor names of fields in the sqlite3 object:  "activeVdbeCnt" becomes
"nVdbeActive".  Related fields becomes "nVdbeRead", "nVdbeWrite", and
"nVdbeExec".
Refactor the Vdbe.noIO field as Vdbe.bIsReader. The meaning is inverted.