Improve the performance of the ANALYZE command by taking advantage of the
fact that every row of a UNIQUE index is distinct.
Ugh.  Consecutive UNIQUE index entries are only distinct if the index is
on NOT NULL columns.  So the previous version was not quite right.  This
check-in fixes the problem.
Avoid change tests when analyzing single-column unique indexes after
getting past the initial NULL entries.
Avoid trying to allocation zero bytes when analyzing a unique non-null index.
Fix a bug in the whereRangeSkipScanEst() procedure (added by
check-in [d09ca6d5efad3e4cfa]) where it fails to consider the possibility
of a ROWID column when computing the affinity of a table column.
Improve the performance of the ANALYZE command by taking advantage of
UNIQUE constraints on indices.
Add constraints (enforced only when SQLITE_DEBUG is enabled) on the use of
OP_Next and OP_Prev.
Improved comments on VDBE opcodes, for better documentation.  No code
or logic changes.
Try to fix harmless compiler warnings reported by Fortify.
Avoid unnecessary no-op calls to applyNumericAffinity() for a small
performance improvement.
Remove an unreachable branch from the sqlite3_value_numeric_type() interface.
Enhancements and updates to the Win32 mutex subsystem.
Have calls to the xFilter() method of rtree virtual tables ensure that cursor is initialized before proceeding. Fix for [d2889096e7bdeac].
Add the SQLITE_TESTCTRL_ISINIT file control.
Merge updates from trunk.
Enhancements and updates to the Win32 mutex subsystem.
Ensure that the correct number of columns in a UNIQUE index are checked for
uniqueness, regardless of whether or not the original table has a ROWID or
if the columns are NOT NULL, etc.  Ticket [9a6daf340df99ba93c].
Add the "eForce" parameter to the sqlite3_multiplex_shutdown() entry point
in test_multiplex.c.  Shutdown is forced if true.  Shutdown is not done if
there are pending database connections and eForce is false, but an error log
entry is made instead.
Add three new static mutexes for use by the application.  This is a partial
import of changes from the threads branch.
Re-integrate the recent changes from the 'winMutex' branch back into the Win32 mutex subsystem.