Add support for parsing C-style hexadecimal literals.
Test cases for hex literals.
Reformatting a few test cases for clarity.
Casting hex literals directly from string to float always results in a
positive number.
Change the hex literal processing so that only the SQL parser understands
hex literals.  Casting and coercing string literals into numeric values does
not understand hexadecimal integers.  This preserves backwards compatibility.
Also:  Throw an error on any hex literal that is too big to fit into 64 bits.
Remove a surplus function prototype.  #ifdef code that is not used when
hex integers are omitted at compile time.
Improve the performance of the ANALYZE command by taking advantage of the
fact that every row of a UNIQUE index is distinct.
Enhancements to the hex literal tests.
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.
In the command-line shell, in CSV output mode, terminate rows with CRNL but
do not expand NL characters in data into CRNL.  Provide the extra -newline
command-line option and the extra argument to .separator to designate an
alternative newline character sequence for CSV output.
Add support for hexadecimal integer literals in the parser.
Add the readfile(FILENAME) and writefile(FILENAME,CONTENT) SQL functions to
the command-line shell.
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.