Added capability to abort async requests.

Refactored request methods to support it.

Issue with discussion: #2491
please mention that the handle can be used to cancel it