AsyncIO: improve error handling for asynchronous operations

Errors on asyncIO operations are currently just be printed. The API should however make it possible to handle the error (e.g. generate iTasks exceptions).

This can probably be done by adding a handler for handling errors, e.g. onError ....