fix small issue: for CONNECT method, no http:// could be found in uri
change buffer type from boost::array to streambuf, and also change interface
return incomplete instead of bad request when parsing initial line
re-design http request, using state machine to recode build state, because data from socket is sometimes incomplete
fix issue: reset the request before overwriting it
fix issue: if browser sends empty packet, the program will go into infinite loop