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`.
Make HostChangedError a subclass of RequestError.
Merge pull request #175 from bboe/poolerror_pickle

Add RequestError subclass to PoolError.