use boost::mutex instead of boost::recursive_mutex as default synchronization primitive for Socket class