Structures the libuv implementation to allow for a plugable BSD style socket implementation to allow for other IO Managers