Request timeout support

Hi,

I need request timeout support in a project I'm working on, so I created this fork with that functionality added.  It seems to work so far.  However, I'm not sure if this is the right way to go about this.  Any suggestions are greatly appreciated.

If this is the right approach, hopefully it can be merged into the main branch.

Thanks!

Bryan