Connection.cs: Improve concurrency prevention of SocketTimerElapsed by disabling timer's AutoReset.

Using CompareExchange we can prevent handler timer from being executed
more than once at a time. However, it's still possible for timer
events to "queue up".

This has potential of causing issues when currently executing handler
decides to close the connection -- queued-up event handler gets executed
post-close.

Issue can be easily mitigated by manually restarting the timer
in SocketTimerElapsed handler (which we have been doing to begin with).
There are no downsides to this approach as data reception from socket
is serial in nature anyway.
[cosmetics] Connection.cs: whitespace fixup
[cosmetics] Connection.cs: remove stale (and commented out) debug code