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 
> it feels weird that __lsm_worker is in lsm_manager.c when we have lsm_worker.c

I agree. I'd thought about renaming lsm_worker.c, but couldn't think of a good candidate. I quite liked having all the thread management stuff in one file. Would you support:
* Keeping ```__lsm_worker``` in ```lsm_manager.c```.
* Rename ```lsm_worker.c``` to ```lsm_work_unit.c``` (your better idea goes here).
* Work unit implementations goes into ```lsm_work_unit.c``` except for merges.