INT-3096 TCP Allow Stacking Cache and Failover

The TcpListener chain was not set up properly; this prevented
caching Failover connections, or Failover cached connections.

Fix the Listener hierarchy; add tests for caching failover
connections and failing over cached connections.

Don't overrwrite the actual connection id if it has already
been set up by a lower level wrapper.