Add framing for TCP

* WIP
Copy some UDP fonctions into TCP, only for client.

* The principles of them are the same!
User login

* WIP
* Only one user can login, still a lot of things to do!
Add frame_handler for client and server
A little hack to pass the test of duplicate

* This test will never happen in real!
Send buf.raw instead of buf to fit the test files.

The refered test cases are (int issue #5):
* trial_one_user_login_udp_client_test.py
* trial_retransmit_one_user_login_udp_client_test.py
Fix bug of unpack

* For the issue #2, username can't be shown when too short
Handle the case of ACK lost
Add login of TCP

* support userList update in main room
* support multiple login
Add send msg in main room for TCP

* replace seqNums by seqNum since TCP has only one user for each
  connection
Add changeRoom

* Fix bug to pass all tests TCP
Add disconnection for TCP
Case of userName exist for TCP
Code clean
Merge branch 'tcp'

Conflicts:
	c2w/protocol/udp_chat_server.py
	c2w/protocol/util.py