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.
merge bug26131 into bug26133
merge bug26133 into bug26135