Take IProtocol out of more public API parts
Catch SocketException in SocketFrameHandler#Timeout

While out of scope of this bug, I need this to make the tests pass
on one of my machines. Plus we renamed SocketFrameHandler on this
branch, so changing this in default will require extra effort
later.