Use a condition variable in LSM worker threads to sleep when there is no work to do.
Have the LSM worker track whether it found work to figure out whether to sleep or keep spinning.
Set the condition variable for LSM workers after allocating it in the manager.
Merge pull request #1195 from wiredtiger/lsm-worker-no-spin

Use a condition variable in LSM worker threads to sleep when there is no work to do
When LSM worker threads fault in new files, make sure they don't block indefinitely due to a full cache.
Don't starve LSM worker threads.

There was a bug in the LSM worker code that stopped some worker threads
getting work units if there was a different work unit type scheduled
ahead of them.

While here allow the dedicated switch thread to also do deletes, to free
up pinned cache.