Set timeout on remote (Add timeout for WinHttpReceiveResponse #2147)

In order to address issue #2147, I would want to add the ability to set timeout value on the remote, that would affect the network operations for that remote.

The reason for that is that the default timeout for WinHttp is 30 seconds, what effectively hampers pushes of bigger repositories.

The changes below alter mostly remote and smart transport cascading the timeout all the way down to the sub transport where all the session magic happens.

For now I implemented the change in winhttp.c. When I get some comments I can go and add the implementation for other sub transports.