Free all extent lists when destroying a checkpoint, fixing a leak in salvage.

refs #947
Split the tuning page sections into individual pages, add a perf-tuning
section to the "Writing WiredTiger applications" page.
Make it explicit that LSM cursors cannot read from checkpoints, at least until we make that work properly.

The main problem is that we don't have a copy of the LSM tree structure for each checkpoint, and as new chunks are added to the tree, ordinary cursors update and see more recent changes.  A secondary problem is ensuring that checkpoints correspond exactly to LSM chunk boundaries.  That way, a given chunk is either in or out of a checkpoint.
Fix some paths where EBUSY could make it out of the LSM checkpoint worker loop.
Checkpoint tester updates based on review feedback.

* Use snapshot isolation in worker thread(s)
* Don't open LSM cursors on a checkpoint
* Fix code that does multiple runs in a single test
* Use the WiredTiger rand implementation, rather than our own.
* Handle deadlocks.
Merge branch 'develop' into checkpoint-optimizations
Merge branch 'checkpoint-optimizations' into checkpoint-test