OF-2730: Avoid Dialback being attempted when S2S Strict is enabled
This is a bit of a rewrite of NettyOutboundConnectionHandler. It is aimed at having clear, concise outcomes for the various scenarios: either a session is ready to be used, or it is properly abandoned in all of them now.
OF-2692: Explictly check if S2S Receiving Entity sets StreamID
RFC6120 dictates that during S2S, the Receiving Entity _must_ set a stream ID to the stream header. This commit fails explicitly when that's the case. Prior to this, a NullPointerException was thrown.
It is likely that this commit fixes a symptom rather than the cause of an issue. It appears that the stream-without-ID is sent by Prosody, that's attempting to send a stream error. Openfire might fail to close a socket, after giving up setting up a connection (or something of that nature).