added a new ThreadLocalPromise which uses Thread-local variables instead of a global map
this is better if you're managing a small number of thread-local Promises
with a large number of threads.

it's all a matter of deciding which is going to be the most likely leak.
Merge branch 'release/0.9.3'

* release/0.9.3:
  added a new ThreadLocalPromise which uses Thread-local variables instead of a global map this is better if you're managing a small number of thread-local Promises with a large number of threads.