Refactor ripple_overlay
  * Use rvalue move to receive accepted sockets
  * Split asio dependent APIs to their own class and file
  * Update documentation