Experimental branch allowing different postulated scan rates for each index.
Progress toward using the iScanRatio information on indices.  Many tests
are still failing.
Improved estimates of the relative speed of index scans based on declared
datatypes of columns in the table.  Add "r" column to PRAGMA index_info,
showing the estimated relative scan rate.
Fix test cases so that they work when the query planner uses index size
estimates to determine whether or not to try an covering index scan.
Further refinements of the index scanning speed logic.
Merge trunk changes.
In the index_list pragma, make sure the "r" column is the same on output
as it was on input in the sqlite_stat1 table.
Begin an experimental refactoring to estimate the average number of bytes
in table and index rows and to use that information in query planner.
Begin by renaming WhereCost to LogEst and making that type and its
conversion routines available outside of where.c.
Improvements to the LogEst command-line tool used to convert between
ordinary numbers and the LogEst representation.
Completely remove the iScanRatio field.  The PRAGMA index_list(TABLE) command
shows the estimated row size in the forth column.  It also generates a row
for the table with an index name of NULL.  The query planner still does not
take row size estimates into account - that is the next step.
Fix an issue in the test8.c test module that arises because of the change
to PRAGMA index_list().  Remove an unused local variable.
Accept the sz=N parameter on table-only lines of sqlite_stat1.
Merge bug fixes from trunk.
Multiply all cursor step cost estimates by the estimated size of the row in
bytes, in order to get the query planner ot make use of estimated row sizes.
This check-in uses magic numbers in a few places (for example, estimates of
the size of output rows) and needs lots of refinement.  Consider this a
proof-of-concept only.
Further refinement of the idea of multiplying run-time cost estimates by
the estimated row size.
Use #ifdefs to omit unused code in the columnType() routine depending on
compile-time options.
Rollback some of the previous changes in the branch such that the estimated
row sizes are now only used as a tie-breaker for index scans.
Fix test cases for the new information in PRAGMA index_list.
Move a conditional inside of an #ifdef in order to make all branches
reachable regardless of compile-time options used.
Make sure the correct printf format is used for type tRowcnt regardless
of whether 32-bit or 64-bit row counts are specified at compile-time.