fix important issue: if a response's body has been sent together with its header, not partial, but complete, then we should not call boost::asio::async_read(...), because there is no more data in socket, we should just process the data already retrieved.
fix typo
implement timeout mechanism for session
fix issue: do not consume the buffer content of request, we will use it when retrying
important improvement: make http request and response inhert from http message, and, embed the socket buffer into message for better message operation
implement response parsing inside HttpResponse