Fix a problem with the cache's dirty-byte calculation; a page can be
marked clean or dirty while the page's footprint is being updated (for
example, the WT_UPDATE "obsolete" discard function can obviously be
updating the page's footprint when the page is clean or dirty).

Handle this by saving a copy of the last value used to increment/decrement
the cache's dirty-byte count for this page, and when the page transitions,
use that saved value to reverse the increment/decrement, not the page's
current footprint.

This means the cache's dirty-byte information lags reality because each
change to the page's footprint won't be reflected in the cache until the
page transitions.  To keep that from being too much of a problem, update
the page's cache dirty-btye information as part of reconciliation, even
if the page isn't transitioning from dirty to clean.

If updating during reconciliation is insufficient, we could also do a
similar information update anywhere we know that only a single thread
of control can being doing the update.  For example, when a
serialization function calls __wt_page_modify_set(), we could check and
if the saved footprint value is sufficiently different from the current
footprint value, we could do the same information update there, since
only a single thread can be doing a serialized update on a page at any
time.
Merge branch 'develop' into cache-dirty-bytes
Merge branch 'develop' into cache-dirty-bytes
Do a runtime check of CRC hardware, if present, use CRC instructions.  refs #582
semantic sugar: whitespace, KNF, spelling checks.
Merge branch 'develop' into cache-dirty-bytes
Update a couple of comments for clarity.
spelling.
Move the serialization lock from WT_CONNECTION into WT_BTREE, the btree
code is the only user.

If we're using pthread locking for spinlocks, lock initialization can
fail and we don't want to destroy uninitialized memory, track if the
lock was ever initialized.
Always cache the last key returned for use in scans.  Otherwise, we can do huge amounts of unnecessary work in __cursor_row_slot_return when scanning some pages.  This change speeds up test_backup03 by over 20% (by speeding up "wt dump").
Only futz with isolation in the top-level checkpoint code.

This fixes a bug introduced in the previous commit to txn_ckpt.c, and the code should not have been necessary anyway: metadata updates are single-threaded, so there can't be an uncommitted update, and if there are uncommitted updates when discarding a tree, we want to know about it.

refs #701
Merge branch 'develop' into scan-opt
minor cleanup, only assign to kb.{data,size} once.
Merge pull request #705 from wiredtiger/scan-opt

Always cache the last key returned for use in scans.
Use funcptr, inited from __wt_library_init.
Alphabetize and other cleanup.  refs #582
Merge pull request #702 from wiredtiger/hardware-cksum

Hardware cksum
Fix a comment, and a little whitespace tweaking, no real change.
Merge branch 'develop' into cache-dirty-bytes
Merge branch 'develop' into mutex-cleanup

Conflicts:
	src/support/global.c
ANSI C declaration, fix spelling.