Decouple read_from_buffer's search for the endpoint from consuming the data.
Decouple read_from_buffer's search for the endpoint from consuming the data.

This lets us call find_read_pos from read_to_buffer_loop, avoiding some
unnecessary reads (e.g. it previously took a minimum of two recv calls
to serve an http request, but now we can do it in one).

Polyconseil/tornado,kippandrew/tornado,gitchs/tornado,Drooids/tornado,MjAbuz/tornado,andyaguiar/tornado,elelianghh/tornado,mlyundin/tornado,obsh/tornado,jampp/tornado,QuanZag/tornado,AlphaStaxLLC/tornado,ajdavis/tornado,ZhuPeng/tornado,shaohung001/tornado,jonashagstedt/tornado,noxiouz/tornado,legnaleurc/tornado,whip112/tornado,Snamint/tornado,gwillem/tornado,eXcomm/tornado,NoyaInRain/tornado,wsyzxcn/tornado,Drooids/tornado,Callwoola/tornado,ListFranz/tornado,liqueur/tornado,0x73/tornado,yangkf1985/tornado,obsh/tornado,ListFranz/tornado,tornadoweb/tornado,drewmiller/tornado,lsanotes/tornado,shaohung001/tornado,shashankbassi92/tornado,bywbilly/tornado,yuezhonghua/tornado,ydaniv/tornado,felixonmars/tornado,Lancher/tornado,mehmetkose/tornado,Aaron1992/tornado,liqueur/tornado,wechasing/tornado,zguangyu/tornado,tianyk/tornado-research,fengshao0907/tornado,gwillem/tornado,arthurdarcet/tornado,MjAbuz/tornado,jsjohnst/tornado,gwillem/tornado,ZhuPeng/tornado,hhru/tornado,QuanZag/tornado,gitchs/tornado,codecov/tornado,mehmetkose/tornado,304471720/tornado,kippandrew/tornado,304471720/tornado,andyaguiar/tornado,Acidburn0zzz/tornado,jarrahwu/tornado,drewmiller/tornado,lujinda/tornado,Geoion/tornado,shashankbassi92/tornado,sunjeammy/tornado,whip112/tornado,NoyaInRain/tornado,hhru/tornado,jparise/tornado,insflow/tornado,xinyu7/tornado,ydaniv/tornado,anandology/tornado,felixonmars/tornado,kangbiao/tornado,lilydjwg/tornado,ListFranz/tornado,jparise/tornado,mlyundin/tornado,mivade/tornado,elelianghh/tornado,Batterfii/tornado,akalipetis/tornado,liqueur/tornado,fengsp/tornado,jsjohnst/tornado,codecov/tornado,jsjohnst/tornado,SuminAndrew/tornado,ifduyue/tornado,dongpinglai/my_tornado,ymero/tornado,LTD-Beget/tornado,wechasing/tornado,takeshineshiro/tornado,yangkf1985/tornado,chenxiaba/tornado,xinyu7/tornado,ubear/tornado,anandology/tornado,lujinda/tornado,zhuochenKIDD/tornado,LTD-Beget/tornado,arthurdarcet/tornado,gwillem/tornado,kangbiao/tornado,shaohung001/tornado,legnaleurc/tornado,Lancher/tornado,zguangyu/tornado,kangbiao/tornado,0x73/tornado,futurechallenger/tornado,liqueur/tornado,ydaniv/tornado,lsanotes/tornado,ovidiucp/tornado,wujuguang/tornado,304471720/tornado,shashankbassi92/tornado,coderhaoxin/tornado,Snamint/tornado,wxhzk/tornado-1,cyrilMargaria/tornado,fengsp/tornado,Callwoola/tornado,InverseLina/tornado,nordaux/tornado,ms7s/tornado,kangbiao/tornado,Snamint/tornado,InverseLina/tornado,shashankbassi92/tornado,ms7s/tornado,AlphaStaxLLC/tornado,0x73/tornado,NoyaInRain/tornado,yangkf1985/tornado,lilydjwg/tornado,whip112/tornado,Acidburn0zzz/tornado,fengshao0907/tornado,gwillem/tornado,obsh/tornado,Polyconseil/tornado,Polyconseil/tornado,chenxiaba/tornado,ajdavis/tornado,importcjj/tornado,Fydot/tornado,wsyzxcn/tornado,mlyundin/tornado,chenxiaba/tornado,kangbiao/tornado,VShangxiao/tornado,arthurdarcet/tornado,Snamint/tornado,frtmelody/tornado,ListFranz/tornado,LTD-Beget/tornado,nbargnesi/tornado,wechasing/tornado,mivade/tornado,elijah513/tornado,yuyangit/tornado,akalipetis/tornado,kevinge314gh/tornado,Windsooon/tornado,wsyzxcn/tornado,eklitzke/tornado,wechasing/tornado,legnaleurc/tornado,dsseter/tornado,futurechallenger/tornado,ovidiucp/tornado,kippandrew/tornado,djt5019/tornado,ovidiucp/tornado,InverseLina/tornado,leekchan/tornado_test,hzruandd/tornado,yuezhonghua/tornado,sxfmol/tornado,z-fork/tornado,wechasing/tornado,drewmiller/tornado,ZhuPeng/tornado,leekchan/tornado_test,andyaguiar/tornado,zhuochenKIDD/tornado,lujinda/tornado,zhuochenKIDD/tornado,kangbiao/tornado,MjAbuz/tornado,Lancher/tornado,shaohung001/tornado,mehmetkose/tornado,ajdavis/tornado,nbargnesi/tornado,wsyzxcn/tornado,allenl203/tornado,ajdavis/tornado,BencoLee/tornado,codeb2cc/tornado,jparise/tornado,bywbilly/tornado,0x73/tornado,cyrilMargaria/tornado,cyrusin/tornado,coderhaoxin/tornado,johan--/tornado,Callwoola/tornado,ColorFuzzy/tornado,tianyk/tornado-research,nbargnesi/tornado,LTD-Beget/tornado,ovidiucp/tornado,Batterfii/tornado,wxhzk/tornado-1,coderhaoxin/tornado,takeshineshiro/tornado,kippandrew/tornado,takeshineshiro/tornado,Fydot/tornado,felixonmars/tornado,ydaniv/tornado,yuyangit/tornado,jsjohnst/tornado,pombredanne/tornado,legnaleurc/tornado,QuanZag/tornado,felixonmars/tornado,ZhuPeng/tornado,QuanZag/tornado,wujuguang/tornado,coderhaoxin/tornado,ColorFuzzy/tornado,gitchs/tornado,Batterfii/tornado,mlyundin/tornado,yangkf1985/tornado,304471720/tornado,sevenguin/tornado,NoyaInRain/tornado,eXcomm/tornado,Aaron1992/tornado,jsjohnst/tornado,codeb2cc/tornado,importcjj/tornado,eXcomm/tornado,Batterfii/tornado,sxfmol/tornado,jampp/tornado,johan--/tornado,jehiah/tornado,jparise/tornado,frtmelody/tornado,gitchs/tornado,drewmiller/tornado,elijah513/tornado,dsseter/tornado,elijah513/tornado,fengsp/tornado,bywbilly/tornado,z-fork/tornado,jarrahwu/tornado,Polyconseil/tornado,arthurdarcet/tornado,futurechallenger/tornado,kaushik94/tornado,codecov/tornado,ms7s/tornado,0xkag/tornado,jehiah/tornado,akalipetis/tornado,whip112/tornado,ubear/tornado,codeb2cc/tornado,ColorFuzzy/tornado,hzruandd/tornado,sevenguin/tornado,johan--/tornado,ydaniv/tornado,MjAbuz/tornado,VShangxiao/tornado,bdarnell/tornado,Fydot/tornado,lsanotes/tornado,LTD-Beget/tornado,pombredanne/tornado,pombredanne/tornado,zhuochenKIDD/tornado,SuminAndrew/tornado,kippandrew/tornado,bdarnell/tornado,sevenguin/tornado,Drooids/tornado,eklitzke/tornado,gwillem/tornado,fengshao0907/tornado,eXcomm/tornado,QuanZag/tornado,takeshineshiro/tornado,dongpinglai/my_tornado,pombredanne/tornado,codeb2cc/tornado,wsyzxcn/tornado,hhru/tornado,futurechallenger/tornado,hhru/tornado,jonashagstedt/tornado,yuyangit/tornado,yuezhonghua/tornado,wxhzk/tornado-1,cyrusin/tornado,jarrahwu/tornado,jehiah/tornado,ColorFuzzy/tornado,AlphaStaxLLC/tornado,sunjeammy/tornado,wxhzk/tornado-1,cyrusin/tornado,ifduyue/tornado,nordaux/tornado,fengshao0907/tornado,anandology/tornado,Callwoola/tornado,yangkf1985/tornado,insflow/tornado,ColorFuzzy/tornado,arthurdarcet/tornado,yuezhonghua/tornado,jehiah/tornado,tianyk/tornado-research,Aaron1992/tornado,sunjeammy/tornado,eklitzke/tornado,Lancher/tornado,hhru/tornado,futurechallenger/tornado,BencoLee/tornado,mr-ping/tornado,Aaron1992/tornado,wujuguang/tornado,zhuochenKIDD/tornado,jarrahwu/tornado,ifduyue/tornado,Polyconseil/tornado,anjan-srivastava/tornado,wujuguang/tornado,mehmetkose/tornado,kaushik94/tornado,dongpinglai/my_tornado,elelianghh/tornado,Batterfii/tornado,wujuguang/tornado,Aaron1992/tornado,InverseLina/tornado,Acidburn0zzz/tornado,cyrilMargaria/tornado,fengshao0907/tornado,304471720/tornado,ubear/tornado,jparise/tornado,erichuang1994/tornado,erichuang1994/tornado,Drooids/tornado,zguangyu/tornado,djt5019/tornado,coderhaoxin/tornado,pombredanne/tornado,sxfmol/tornado,Lancher/tornado,yangkf1985/tornado,yuyangit/tornado,noxiouz/tornado,mivade/tornado,lujinda/tornado,sxfmol/tornado,noxiouz/tornado,djt5019/tornado,xinyu7/tornado,liqueur/tornado,bdarnell/tornado,ubear/tornado,sxfmol/tornado,Geoion/tornado,AlphaStaxLLC/tornado,leekchan/tornado_test,arthurdarcet/tornado,nbargnesi/tornado,bdarnell/tornado,bywbilly/tornado,Snamint/tornado,tornadoweb/tornado,AlphaStaxLLC/tornado,0x73/tornado,andyaguiar/tornado,z-fork/tornado,AlphaStaxLLC/tornado,anjan-srivastava/tornado,ZhuPeng/tornado,xinyu7/tornado,whip112/tornado,cyrilMargaria/tornado,erichuang1994/tornado,anandology/tornado,coderhaoxin/tornado,fengsp/tornado,noxiouz/tornado,chenxiaba/tornado,NoyaInRain/tornado,kippandrew/tornado,tornadoweb/tornado,leekchan/tornado_test,cyrilMargaria/tornado,allenl203/tornado,icejoywoo/tornado,VShangxiao/tornado,VShangxiao/tornado,johan--/tornado,jehiah/tornado,cyrusin/tornado,icejoywoo/tornado,shaohung001/tornado,akalipetis/tornado,ColorFuzzy/tornado,akalipetis/tornado,Acidburn0zzz/tornado,elijah513/tornado,0xkag/tornado,yuezhonghua/tornado,sxfmol/tornado,anjan-srivastava/tornado,elelianghh/tornado,anandology/tornado,obsh/tornado,LTD-Beget/tornado,Fydot/tornado,akalipetis/tornado,ubear/tornado,allenl203/tornado,mlyundin/tornado,Acidburn0zzz/tornado,legnaleurc/tornado,ifduyue/tornado,johan--/tornado,cyrusin/tornado,andyaguiar/tornado,leekchan/tornado_test,hzruandd/tornado,ubear/tornado,djt5019/tornado,304471720/tornado,BencoLee/tornado,insflow/tornado,importcjj/tornado,jarrahwu/tornado,mehmetkose/tornado,fengsp/tornado,allenl203/tornado,Batterfii/tornado,frtmelody/tornado,jarrahwu/tornado,icejoywoo/tornado,wsyzxcn/tornado,zguangyu/tornado,ovidiucp/tornado,fengshao0907/tornado,eklitzke/tornado,Snamint/tornado,jonashagstedt/tornado,erichuang1994/tornado,VShangxiao/tornado,chenxiaba/tornado,SuminAndrew/tornado,Fydot/tornado,ydaniv/tornado,eXcomm/tornado,jampp/tornado,Windsooon/tornado,wsyzxcn/tornado,importcjj/tornado,sevenguin/tornado,z-fork/tornado,dongpinglai/my_tornado,ajdavis/tornado,ms7s/tornado,ms7s/tornado,codeb2cc/tornado,xinyu7/tornado,zguangyu/tornado,lsanotes/tornado,Drooids/tornado,ifduyue/tornado,jparise/tornado,elelianghh/tornado,ymero/tornado,nordaux/tornado,jonashagstedt/tornado,nbargnesi/tornado,lilydjwg/tornado,noxiouz/tornado,frtmelody/tornado,dongpinglai/my_tornado,andyaguiar/tornado,ovidiucp/tornado,icejoywoo/tornado,noxiouz/tornado,yuyangit/tornado,VShangxiao/tornado,sevenguin/tornado,z-fork/tornado,takeshineshiro/tornado,tianyk/tornado-research,tornadoweb/tornado,Geoion/tornado,sevenguin/tornado,mr-ping/tornado,wxhzk/tornado-1,zhuochenKIDD/tornado,frtmelody/tornado,kaushik94/tornado,ymero/tornado,kevinge314gh/tornado,erichuang1994/tornado,kaushik94/tornado,kevinge314gh/tornado,shaohung001/tornado,BencoLee/tornado,QuanZag/tornado,allenl203/tornado,lujinda/tornado,NoyaInRain/tornado,z-fork/tornado,eklitzke/tornado,wxhzk/tornado-1,codeb2cc/tornado,felixonmars/tornado,Fydot/tornado,elelianghh/tornado,xinyu7/tornado,ymero/tornado,shashankbassi92/tornado,insflow/tornado,nbargnesi/tornado,Windsooon/tornado,jampp/tornado,dsseter/tornado,Geoion/tornado,wechasing/tornado,MjAbuz/tornado,tianyk/tornado-research,Callwoola/tornado,Windsooon/tornado,ymero/tornado,elijah513/tornado,cyrusin/tornado,johan--/tornado,0xkag/tornado,chenxiaba/tornado,eXcomm/tornado,bywbilly/tornado,mehmetkose/tornado,elijah513/tornado,sunjeammy/tornado,yuezhonghua/tornado,erichuang1994/tornado,dsseter/tornado,anandology/tornado,SuminAndrew/tornado,kaushik94/tornado,Polyconseil/tornado,MjAbuz/tornado,jsjohnst/tornado,icejoywoo/tornado,drewmiller/tornado,whip112/tornado,icejoywoo/tornado,dongpinglai/my_tornado,cyrilMargaria/tornado,fengsp/tornado,frtmelody/tornado,hzruandd/tornado,lilydjwg/tornado,anjan-srivastava/tornado,shashankbassi92/tornado,Geoion/tornado,0xkag/tornado,codecov/tornado,Windsooon/tornado,futurechallenger/tornado,ms7s/tornado,lujinda/tornado,anjan-srivastava/tornado,SuminAndrew/tornado,obsh/tornado,Drooids/tornado,importcjj/tornado,djt5019/tornado,jonashagstedt/tornado,insflow/tornado,kevinge314gh/tornado,hzruandd/tornado,nordaux/tornado,insflow/tornado,importcjj/tornado,zguangyu/tornado,sunjeammy/tornado,Callwoola/tornado,kevinge314gh/tornado,gitchs/tornado,Windsooon/tornado,mr-ping/tornado,liqueur/tornado,mivade/tornado,bdarnell/tornado,0xkag/tornado,jampp/tornado,BencoLee/tornado,ListFranz/tornado,mr-ping/tornado,mr-ping/tornado,pombredanne/tornado,mr-ping/tornado,takeshineshiro/tornado,lsanotes/tornado,ZhuPeng/tornado,drewmiller/tornado,gitchs/tornado,lsanotes/tornado,kevinge314gh/tornado,Geoion/tornado,ListFranz/tornado,nordaux/tornado,InverseLina/tornado,dsseter/tornado,djt5019/tornado,hzruandd/tornado,mlyundin/tornado,anjan-srivastava/tornado,ymero/tornado,bywbilly/tornado,dsseter/tornado,BencoLee/tornado,InverseLina/tornado,mivade/tornado,jampp/tornado,Acidburn0zzz/tornado,obsh/tornado