Add RequestError subclass to PoolError.

The former PoolError `__reduce__` method was broken as it assumed the `url` attribute was set, when in fact it was not.

As per issue #174, this commit creates a `RequestError` subclass of `PoolError` and makes `MaxRetryError` and `TimeoutError` a subclass of `RequestError`.