replace complex/broken pinging with tcp keepalive

rather not set up a read/write loop right now; let's see if simple tcp
keepalives are enough