added a trait to enable passing a specific execution context for futures. fixes #241