Add support for SO_KEEPALIVE to Connection

SO_KEEPALIVE support is needed for added reliability in detecting closed sockets, especially on mobile connections.