Lsm shared workers

Move to a model where there is a single set of worker threads for all LSM trees, rather than each tree having a set of worker threads.

This branch isn't ready for review yet, just opening a pull request so I can easily review the changes at the moment.

References #1113 
If the setting is 1, and there is an LSM tree it won't ever do merges (or drops etc). The first three threads are:
* 1 LSM manager thread
* 1 thread dedicated to doing LSM switches
* 1 generic worker thread

On the other side - the manager threads are only started when an LSM tree is opened. So if an application doesn't have LSM trees none of the threads will be started.