Refactor to use HighWatermark
Create SocketSpec so it can be transfered to ManagedSocket
Merge remote-tracking branch 'origin/master'