Support for request exception handling.

The AsyncRequest adds a `exception_handler` parameter and sets `self.exception` to the `requests.exception.RequestException` in case exception.

If set, in case of exception it is called with the `request` as single parameter. `erequests.map` and `erequests.imap` return the return value of `exception_handler()` insted of `None` in case of an exception.