Add support for connect timeouts

Modifies the timeout interface to also accept a tuple (connect, read) which
would be used to set individual connect and read timeouts for Requests. Adds
Advanced documentation explaining the interface and providing guidance for
timeout values.
I think having `ConnectTimeout` multiply-inherit from `ConnectionError` and `Timeout` will assuage my fears, and resolve the breaking change. I agree that it feels more conceptually appropriate.