Added capability to abort async requests.

Refactored request methods to support it.

Issue with discussion: #2491