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 
I think this is okay, but can you add a little more to the comment explaining how "exclusive access" for an LSM tree is indicated?  In other words, what is going to generate the `EBUSY`?