Make the allocation code for an aggregate statistics structure look the
same for table and LSM, don't initialize the LSM aggregate, the copy of
the first chunk's statistics does that for us.
cleanup, __wt_backup_list_all_append is a local function, remove leading __wt.
When locking the schema file, assert that it's not already locked, the
underlying locking primitives won't always detect self-deadlock.
A different approach to aggregating checkpoint handle statistics; when
retrieving the cursor statistics for a file URI, run through the list
of open handles and aggregate statistics for any checkpoint handles on
the same underlying URI.

This backs out most of the previous changes to conn/conn_stat.c on this
branch.

Some notable changes along the way:

Don't bother doing next/prev on the statistics cursor in the stat log
server code, we know where the values are, just get them.

When opening the statistics cursor in the stat log server code, use a
default cursor configuration.

This means btree cursors potentially require a copy into a separate
WT_DSRC_STATS structure (just like tables and LSM); bite that bullet and
do it all the time both for btree cursors and connection statistics
cursors.  That means we (1) don't need to pin the underlying btree but
can immediately release it, and (2) don't have to remember how to clear
the underlying statistics when we close the statistics cursor, we can
clear them immediately after the copy.
Quit allocating the statistics cursor's stat structures separately from
the cursor itself, add a union of the possible statistics structure to
the cursor itself.

Fix bug found by inspection -- set WT_CURSOR_STAT.notpositioned for table,
colgroup and index statistics cursors.