Salvage can read through the standard WT_BM handle when reading overflow
items, so it's necessary to test if we're performing salvage, overflow
blocks might be long gone.
If a file is checkpointed without a previous checkpoint having been
"resolved", do the resolution internally so we don't leak blocks.
It's marginally safer to leak the blocks, but there has to be a bug
in the upper layers for this to happen at all, and leaking blocks
means file verify will fail.

Add messages to complain if we see this problem happen.
Fixes for overflow caching with fast-path eviction.

This refines the changes in 1bb1074495f21f4aab8058aaf80b4d3a5a0c2801 to only apply when safe, which means both that the transactional context is "good enough", and that the page is simple.  Otherwise, we need a real transaction.

refs #743
There's no need to set the page's read generation inside the eviction
lock: I can't imagine it makes a difference, but we know the read
generation is a hot cache line, don't mix-and-match.
Fix compiler warnings with GCC 4.7.2 on Ubuntu.
Allow wtperf to have a zero runtime.

It can be useful to re-use of a populate across multiple runs, or
sometimes the populate phase is what we're interested in.
Do a full-barrier when spinlock logging is configured, it cuts down on
the number of races.

Add statistics to track the number of spinlock acquisitions.
Make memory statistics sort together, get rid of most of the uses of
"total", it doesn't add information for connection-only statistics.
lint, cleanup, style.
Be more aggressive in ignoring spinlock mutexes we don't care about, ignore
up to 10 acquisitions a second.
Fix a few potential performance problems in eviction.

Application threads should only do eviction when the cache is full(!).
Don't rely on reading the number of candidates before getting the lock.
Set "disk_snap_txn" even if eviction fails, don't retry until the oldest ID has moved forwards.
Roll back "policy" parts of the last change to eviction: a few performance tests showed regressions.  The eviction thread only tries to evict half of the candidates before looking for me, and loop for a long time before deciding the cache is stuck.
Wake up all threads waiting on a condition variable.
Try to evict if the cache is nearly full and we are at the API boundary.
lint: implicit conversion loses integer precision
rec_write.c:2567: warning: 'upd' may be used uninitialized in this function
Configure statistics if stat command used. #746
Support both command-line and other config arguments; prepend internal
arguments to the command-line so the user can override if they choose.

Quit parsing the command over and over, it's simpler and cleaner to
set a function pointer.
Merge branch 'develop' into fine-grained-durability

Conflicts:
	dist/stat_data.py
	src/include/wiredtiger.in
	src/support/stat.c
	test/salvage/salvage.c
	test/thread/t.c