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 
Two comments:
1. it feels weird that `__lsm_worker` is in `lsm_manager.c` when we have `lsm_worker.c`; and
2. the comment describing this function only talks about switches, but the worker can do any operation.