Added nuget package restore functionality
removed packages folder
Renamed classes, added support for setting socket options (makes it more flexible), and added interfaces for all major components (easier testing)