Added timeout management (with -t on command line)

I think this patch fixes timeout management issue #11.
The implementation really depends on what you want to timeout. If you just want to timeout receiving headers (which seems perfectly reasonable for most cases) that can be done trivially by setting the ResponseHeaderTimeout field on the transport, but be aware that timeout starts after the client has flushed the request over the TCP connection and does not include any dial time, etc.