Implements a very easy to use sockets API based on IObservable