Timeout exception handling

Catching timeout exceptions and handling in `map()`/`imap()` functions with the `exception_handler` parameter which is None or a callback function.
Added some tests to demonstrate the usage