Fix KeepAliveDisconnected race condition

As details explained in #84, current HTTPClient's KeepAliveDisconnected
handling has a race condition bug that allows a client to have
invalidated connection two or more times. This could be a cause of #185.

To avoid this, make HTTPClient acquire new connection for retry of
KeepAliveDisconnected.

Closes #84. Closes #185.