connection.* methods should not ignore AlreadyClosedException

The change got lost earlier during branch re-creation.
Backed out changeset 39d010399f9d

When network connection fails right before a connection negotiation/tuning
frame is sent, we want OperationInterruptedException to be thrown and not
AlreadyClosedException.

SessionBase#Transmit will throw the latter,
if we handle it, method continuation will eventually throw an OIE.
Replace confusing comments
Make it possible to provide a custom remote cert validator and local cert selector

Manually integrates https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/12
Ignore NotSupportedException thrown by BufferedStream writes

The issue seems to be an unfortunate buffered stream behaviour
aspect when there's data to read and a write is attempted.

Since this exception is very confusing and our intent is to shut
down anyway, we ignore it.
Make Subscription#Next return null/false when underlying channel is closed
Add test file missing from the previous commit
Initial test for EventingBasicConsumer
More tests for EventingConsumer
Merge bug25895 into default
Port some Model#QueueDelete and #ExchangeDelete tests
Merge bug25911 into default
Merge bug25046 into stable
Merge bug26071
Test for basic.ack with unknown delivery tag
Test for passive queue declaration
Tests for passive exchange declaration
Test double acking with basic.get
Improve invalid ack tests
Test double nack