TCP keepalive

We need TCP keepalive to be able to copy large objects without timing out.  To do this we set timeout to None and keepalive to e.g. (10, 5, 4).  That way if the connection goes bad we still get an exception instead of hanging forever, but long running requests do not cause problems.