Improve and simplify the LSM switch logic: it is fine to keep writing into a chunk while it is being switched, until either it hits the hard chunk size limit or a switch transaction ID is chosen that is larger than the writer's.  Fixes an assertion failure introduced by #1432 that could write to an old chunk after the switch completed.

refs #1432, #1418
Don't try to find a chunk to flush in empty LSM trees.
Sweep old handles more aggressively:

1. don't have checkpoint or other periodic operations like statistics logging keep old handles alive;
2. don't wait for all sessions to empty the file from their cache before closing;
3. only update the time of death from the sweep thread.
Take more care to only set NEED_SWITCH once when a chunk becomes full.
Make sure that the LSM tree is set up to trigger a switch before looping in __clsm_enter_update.
Merge branch 'develop' into lsm-switch-simplify
Clarify the use of randomness in chunk selection for flushes.
SESSION->drop with "force" of nonexistant index/colgroup should be silent.
Refs #1436.
Deal with the case where there is no chunk in an LSM tree to flush.
Lint.
Merge branch 'develop' into force-drop
Fixup result of merge into develop.
Implement @agorrod's review feedback.
Merge branch 'develop' into sweep-more
Merge pull request #1455 from wiredtiger/force-drop

Force drop
Merge pull request #1449 from wiredtiger/lsm-switch-simplify

Improve and simplify the LSM switch logic
Change timing to allow archive thread to complete on tests that
do archive.  Since this can make each test run substantially longer,
reduce the number of tests that are doing archive from ~4000 to
something under 100. Refs #1452.
The "inuse" field protects the btree, the "session_ref" field protects the dhandle.  Unlock the handle if we don't attempt to discard it, or if the discard fails.
Merge pull request #1457 from wiredtiger/log-archive-timing

Change timing to allow archive thread to complete on tests that do archive.
Merge branch 'develop' into sweep-more