Add code to confirm Michael's idea on the #682 failure.
Merge branch 'develop' into branch682
Merge branch 'develop' into branch682
Michael fixed the real problem in #682; remove the test code, but leave
the change that supports discarding a clean internal node with children;
I'm not sure we're going to keep it, though.
A different fix/change: return from __rec_review() if the page being
evicted is the top page of a tree of pages.  That avoids the additional
cost of walking an internal page with no in-memory children in both the
clean and dirty cases (so it's marginally faster), and won't break if
we ever evict clean nodes with children in the future.
__rec_review() goes recursive, don't clear the istree state flag on each
call.

I made the same change for inmem_split.  It isn't a bug, because the
check for "can this page be merged" will cause us to return EBUSY before
we get to the code that flags an in-memory split, but it's confusing for
a recursive function to clear the flag on each call.
Change default for logging to be off.
Typos.
During checkpoints, use the session's isolation level, not just the transaction's.  Auto-commit operations (such as metadata updates) switch the transaction isolation level to the default for the session, which isn't what we want.

refs #701
Merge pull request #700 from wiredtiger/branch682

Check that in-memory pages have no children (once) during eviction.
Only bump the oldest snapshot ID during normal snapshot refresh if we have a much better value.  Track the oldest running ID in a similar way and use it for read-uncommitted operations.

refs #701
Now that we aren't forcing oldest ID updates all the time, we need one in the compact path so that all recently-dirtied pages can be evicted.

refs #701
Remove redundant function declarations.
Add another explicit bump of the oldest ID for LSM.

refs #701
Merge branch 'develop' into cache-dirty-bytes
Update a couple of comments for clarity.