add Timeout support: add request/7 and async_request/7

By default makeing a request will be done by waiting for an available worker.
This changes allows you to timeout this request if no worker is available.