ability to override open/read timeouts

Quick and dirty timeouts.

I took a lot of inspiration from how Faraday overrides Net:HTTP timeouts.

Also  as an idea for the future what do you think of using Faraday?