Add one more wrapped layer, and modified the responsibility of each layer.
Now should be pretty easy to use.

CCTCPConnection: bottom layer
CCCommunicationHandler: responsible for sending and receving message, including queuing for resending, queuing timeout detect, and connection management
CCMessageCenter: Provides easy to use interface, login/logout handler, automatically map a response to a request we send, and time out mechanism for a request that don't get a response