NCBC-755: Update SslConnection to use byte[] Send(byte[] buffer) overload

Motivation
----------
This is a regression of the newer SAEA IO - When an UseSsl is enabled, the
client will use a different connection class (SslConnection) which
overrides a different virtual method than the Connection class. The
DefaultIOStrategy code was changed to use the override mentioned in the
title of this ticket which not implemented, thus a NIE is thrown. it also
fixes and resolves and issue related to NCBC-694 where the custom ports
settings are not being honored.

Modifications
-------------
The byte[] Send(byte[] buffer) method was overridden and implemented to
support sending and recieving of memcached requests/responses in
SslConnection. The IPEndPointExtensions class was refactored to better
abstract the creation of IPEndPoints from the cluster map configuration.
SocketEventAsyncArgs was modified to support a buffer. Finally, an new
class and interface was introduced to bridge the two cluster map node
types (Nodes and NodesExt) that are now being used: INodeAdapter.

Result
------
When SSL is enabled, the client will use the appropriate ports, types and
overloads to support encryption of data between clients and server.

Change-Id: Ia7276a73011613fad1124989e5522af3d5547d52
Reviewed-on: http://review.couchbase.org/44561
Reviewed-by: Brett Lawson <brett19@gmail.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>