Don't re-enter the LSM tree when doing lookups for no-overwrite cursors.  Also fix a bug where no-overwrite update operations were using the old version of the value.

closes #712
Fix a comment.
Increment skipped if we skip a chunk because the refcnt is non-zero.
Reference #713.
Make sure the tree is marked dirty before the page is marked dirty.
(The tree's modified flag is cleared by the checkpoint thread, set it
and insert a barrier before dirtying the page, don't let checkpoint
get in and clean the page before we've managed to dirty the tree.)
I hoped this was #713, but apparently not -- regardless, it's a better
way to shape the world, leave it in.
Update comment.
__wt_conn_btree_apply should not process at checkpoint handles.

Refs #709.

There are currently two callers of __wt_conn_btree_apply:
 * Checkpoint, which skips handles open on checkpoints.
 * Global statistics dump, which ignores the checkpoint flag on handles it
   retrieves, so will end up dumping statistics for a file twice if a
   checkpoint handle is open.
Only clear the "no eviction" flag in LSM after the checkpoint has completed.  Otherwise, checkpoint will try to forcible evict the leaf page.

refs #713
We require 8B atomic updates, there's no reason to restrict the
statistics-based atomic updates to 4B.
When dumping addresses, blocks or pages, dump out each checkpoint's
root page information.
When adding metadata information to the list of chunks we've verified,
note what they are so it's easier to figure out the file's layout.
Bug, we're returning a random root-address length because the calculation
used the wrong variable.
Bug: we were using the length of the address as the bytes read into
the cache rather than something even close to correct (like the number
of bytes we instantiate in the cache).
The stat "clear" function isn't correct for initialization because it
ignores some fields, its intent is to clear specific fields between
stat calls, not clear the whole structure.  Add clear functionality
to the stat initialization function so it can be used to refresh stat
structures.

Change the name of the stat "clear" function to "refresh" so nobody
makes this mistake in the future (but don't drive that change out to the
application-level, "clear" is still the right way for the application
programmer to think about this).

Change the LSM and the table statistics aggregation code to always call
the statistics structure's init function, that will clear any previous
values.
Rework the statistics logging code to aggregate information from any
open handles, so, for example, the statistics from open checkpoint
handles will be logged.

Rework the statistics logging code to call __wt_curstat_open rather
than using application-level calls, that matches LSM's behavior and
I think it's cleaner and more correct.

This changes __wt_conn_btree_apply() to take a new argument flagging
it's supposed to return checkpoint handles as well as non-checkpoint
handles.

Ref #709.
Change table statistics to use standard statistics aggregation code
instead of rolling its own, otherwise we aggregate values like file
magic numbers and file versions.
Table statistics no longer needs WT_STAT_INCRKV, and no other code
uses it, remove it.
Copy one set of statistics from the first chunk, otherwise base statistics
like the file magic number and block version won't get set.
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.