Dispose shouldn't throw after a call to Disconnect

Previously, the cancelation token would throw an ObjectDisposedException
when Disposed is called after Disconnect
Updated version to publish new drop
Remove the event subscription from all the sockets,
so disposing them doesn't cause a collection modified exception while multiple sockets are still connected.
bump version for release
Fix MissingMethodException that mysteriously is thrown when the type isn't specified
Bump version for release
Added license
Reactify the reading part of ReactiveSocket
Reactify the sending part of ReactiveSocket
Complete the observables when the ReactiveSocket is disposed
Release the lock on the same thread as the lock was entered

Also use a simple monitor for synchronization, as a ReadWriterLockSlim
is a bit overkill
Complete the listener observable when disposing
Move using to their correct positions
Release synclock as soon as possible
Terminate the sequence if stream.EndRead returns zero bytes, so we don't end up with 100% CPU consumption
Allow to specify the size of the receive buffer
Use the Tracer NuGet for logging
Remove unused NuGet and fix file name