Feature enhanced executor

Adding a thread-pool executor that:
* fixes known bugs that are fixed in python 3, but not in the `concurrent.futures` package on PyPI
* Allows one to supply an `initializer` and `uninitializer` that bookend the creation of each worker thread.
* Allows one to pass a name that will prefix the names of worker threads. This is useful in debugging.