New
- `Future` now takes a `pool` argument to specify a thread pool.
- `Future` now implements `__call__` to allow `Future(f)("foo", k=42)` style to pass additional arguments.
- `Future.deref()` now accepts an optional `timeout` parameter to avoid blocking forever.
- Introduce `Deferred` object to encapsulate deferred results and re-throwing with original traceback.