Sockets specializations reimplemented as template + typedefs.

Current approach solves VS2013 inability to generate move ctor/move assign
and also reduces duplicated code.