Merge in QueuedStream from orcun/Fleck.

- QueuedStream which queues stream sends, and subsequently fixes some issues esp with secure connections writing to the stream. (https://github.com/statianzo/Fleck/issues/30)

- expose remote cert validation
Merge in SimpleSocketConnection and NoProtocolServer from orcun/Fleck.

- added simple tcp socket server functionality
Merge in QueuedStream fixes from orcun/Fleck.
multiple writes support to SslStream. Fixes #30
fixes EndWrite calls by Task.FromAsync
pull in changes from orcun: Fixed multiple writes to SslStream with unit test
minor formatting change
Create PolicyServer, and other changes.

Change SimpleSocketConnection into SocketConnection, adjust code a little.
Change NoProtocolServer to be a PolicyServer, to serve flash cross-domain policy documents via port 843.
Change WebSocketConnection to inherit from SocketConnection, and clean out the resulting redundant code.
Add in Send logMessages (from orcun/Fleck); new methods HandleRead and HandleReadError are used for the new OnRead and OnReadError.
Change WebSocketServer to bind correctly on IP.

Change WebSocketServer constructor to take IPAddress object and int port rather than a location string.
Adjust WebSocketServer members as we now store the ip/port in an IPEndPoint.

WebSocketServer constructor no longer accepts a "location" string which was being parsed to know if the server was "ws" or "wss" (secure). Instead we now look to whether a secure Certificate has been set (which was being checked in addition to the "wss" anyway).