Improvements to sockets-for-pcl

I've been making steady improvements to my sockets-for-pcl library over the last month. There are a number of bugfixes, as detailed in the full changelog. Most of those bugs I've found while building out the upcoming sockethelpers project. However, there are also a few new features that apply to sockets-for-pcl:

Binding to specific interfaces

Generally, binding to a specific interface isn't neccessary on a mobile device. However, on a machine with several adapters, or when working with UDP multicast, it may be useful to work with a specific adapter only.

You can get a list of availabled interfaces using CommsInterface.GetAllInterfacesAsync(). The Listen methods on TcpSocketListener, UdpSocketListener and UdpSocketMulticastClient all now have optional parameters allowing a specific interface to be bound.

TLS connections to remote hosts

Thanks to contributions from @galvesribeiro, TcpSocketClient can now communicate securely with TLS-enabled servers with a valid certificate. ConnectAsync now has an optional parameter useTls that controls whether the TcpSocketClient should attempt to negotiate a secure connection.