Restore client socket timeout

Reverts the revert from
"d323666 Various logging bug fixes and revert socket timeout"
and restores
"7f08263 Reapply 5e465f4 Add a timeout to the client socket"

Not ideal to have a socket timeout like this when we now have the persistent
background service in the client, but it's needed until we can fix these two
bugs:

1) client disconnecting in ways that don't close the socket completely
2) the daemon in the VM not accepting more than one connection

Because of (2), whenever (1) happens, that user is effectively locked out of
their account because we end up holding open a socket to their VM forever.

The server setting a timeout on the client socket ensures that when (1)
happens, a minute later the client socket will close, causing that user
session to be terminated which makes the server disconnect from the VM.
After that, the user is able to successfully login again.

Change-Id: I2fe055d2613c1217b75d292e2837af0adfb480b3
Change leftover references to 'proxySocket' to 'clientSocket'

There were a few leftover log messages and a status flag that used the
old 'proxySocket' nomenclature. This updates them all to 'clientSocket'
for readability.

Change-Id: Ib668c8cc13e06412f187b33d07f957d71c61bf53
Reworked framed socket to handle fragmented headers