Implement sending explicit connect message on connection

- Add :end_point option to SocketIO#connect.
- Reference implementations:
  - https://github.com/pashields/AZSocketIO
  - https://github.com/Gottox/socket.io-java-client
Refactor Client#start_recieve_loop

-  Define loop body as start_recieve_loop_body
  - For example, this enable to catch all events regardless of its name