More changes to address a leak in using Netty's IdleStateHandlers. When a remote peer dies, the idle state handlers don't automatically get cleaned up. When the connection is re-established, then Netty still has references to the old IdleStateHandlers and thus references to old objects that can't be collected but also aren't referencable by the TcpClient. This change forces the destruction of any IdleStateHandlers added when the connection it is monitoring is closed for any reason.