Fixed threadpool hang and added lots of smoketests.
* Fixed bug in threadpool logic when calling CleanupAnyWorkersSharingAllocator - this was deleting the worker's thread death notifier in the context of a worker thread (which is only allowed from the context of the main thread).
* Added lots more smoketests
* Added --overwrite option to fzip (previously unzipping would always overwrite)