Use a count in LSM cursors to decide whether to throttle: the shared count can race and with huge records, there may not be enough records per chunk to get effective throttling.  Also tweak LSM merges to minimize throttling: stick with low-level merges whenever the throttle value is non-zero.

refs #874, #663
If we're hitting the maximum chunk size, do the deepest merge we can: don't choose the first set near the top of the tree that hits the limit because that can leave smaller chunks stranded in the middle of the tree.
Only evict Bloom filter pages if eviction gets aggressive.
Only try to evict ordinary internal pages after failing to find leaf pages.
Have the first merge thread focus on creating Bloom filters and other threads focus on merging, particularly if application threads are being throttled.
Merge branch 'develop' into lsm-fixes
Merge branch 'develop' into lsm-fixes
Allow some internal pages to be evicted without eviction getting aggressive.

Don't require eviction to visit pages twice before they can be evicted: in a large cache, it may take a very long time for eviction to move all the way through the cache, and this was keeping pages pinned for much longer than they needed to be.

Remember if some files are not generating many eviction candidates, and visit them less often than files with many evictable pages.
Switch to incrementing the global read generation from the eviction server: this reduces collisions between updates from multiple threads and avoids updates entirely for in-memory workloads.
Merge branch 'develop' into lsm-fixes
Merge branch 'develop' into lsm-fixes
Merge pull request #877 from wiredtiger/lsm-fixes

Improve LSM performance with wtperf tests 1-4