CompactProtocol: more improvements
CompactProtocol: more improvements

Summary:
Add a specialized Cursor method that reads exactly 1 byte, in
addition to the existing one that reads into a buffer. Use it when
reading varints and standalone bytes in a CompactProtocol struct.

Test Plan:
```
------ old ------   ------ new ------
Benchmark                               time/iter  iters/s  time/iter  iters/s        win
=========================================================================================
CompactProtocol_read_Empty                18.68ns   53.54M    13.21ns   75.69M     41.37%
CompactProtocol_read_SmallInt             42.60ns   23.47M    29.95ns   33.39M     42.27%
CompactProtocol_read_BigInt               83.62ns   11.96M    68.40ns   14.62M     22.24%
CompactProtocol_read_SmallString          67.33ns   14.85M    55.62ns   17.98M     21.08%
CompactProtocol_read_BigString           353.83ns    2.83M   330.19ns    3.03M      7.07%
CompactProtocol_read_BigBinary           190.82ns    5.24M   182.90ns    5.47M      4.39%
CompactProtocol_read_LargeBinary         200.95ns    4.98M   187.00ns    5.35M      7.43%
CompactProtocol_read_Mixed               137.42ns    7.28M   102.98ns    9.71M     33.38%
CompactProtocol_read_SmallListInt        203.98ns    4.90M   146.68ns    6.82M     39.18%
CompactProtocol_read_BigListInt          120.50us    8.30K    71.56us   13.97K     68.31%
CompactProtocol_read_BigListMixed          1.62ms   617.07     1.26ms   795.60     28.93%
CompactProtocol_read_LargeListMixed      177.50ms     5.63   140.73ms     7.11     26.29%
```

Reviewed By: haijunz@fb.com

Subscribers: trunkagent, alandau, bmatheny, njormrod, mshneer, folly-diffs@

FB internal diff: D1678077

Signature: t1:1678077:1415923409:22accee6b62b6e2bf471f3758a290f71978a8c4e

Eagle-X/folly,zhiweicai/folly,wildinto/folly,reddit/folly,floxard/folly,renyinew/folly,colemancda/folly,raphaelamorim/folly,reddit/folly,nickhen/folly,wildinto/folly,Eagle-X/folly,gaoyingie/folly,sonnyhu/folly,Hincoin/folly,yangjin-unique/folly,mqeizi/folly,raphaelamorim/folly,tomhughes/folly,leolujuyi/folly,theiver9827/folly,PPC64/folly,bowlofstew/folly,project-zerus/folly,gavioto/folly,KSreeHarsha/folly,gaoyingie/folly,nickhen/folly,bobegir/folly,renyinew/folly,bikong2/folly,kernelim/folly,ykarlsbrun/folly,lifei/folly,Hincoin/folly,fw1121/folly,SammyK/folly,colemancda/folly,sonnyhu/folly,PoisonBOx/folly,rklabs/folly,alexst07/folly,leolujuyi/folly,rklabs/folly,alexst07/folly,fw1121/folly,zhiweicai/folly,gaoyingie/folly,hongliangzhao/folly,loversInJapan/folly,loverszhaokai/folly,bsampath/folly,colemancda/folly,rklabs/folly,loverszhaokai/folly,facebook/folly,upsoft/folly,kernelim/folly,project-zerus/folly,romange/folly,charsyam/folly,chjp2046/folly,SeanRBurton/folly,SammyK/folly,renyinew/folly,bowlofstew/folly,PPC64/folly,gavioto/folly,CJstar/folly,tomhughes/folly,constantine001/folly,lifei/folly,PPC64/folly,charsyam/folly,xzmagic/folly,ykarlsbrun/folly,constantine001/folly,project-zerus/folly,clearlylin/folly,sakishum/folly,theiver9827/folly,SammyK/folly,clearlinux/folly,Hincoin/folly,floxard/folly,cole14/folly,fw1121/folly,loversInJapan/folly,Orvid/folly,facebook/folly,floxard/folly,KSreeHarsha/folly,loversInJapan/folly,bsampath/folly,chjp2046/folly,tempbottle/folly,bsampath/folly,project-zerus/folly,gavioto/folly,bobegir/folly,guker/folly,wildinto/folly,CJstar/folly,bsampath/folly,rklabs/folly,PoisonBOx/folly,theiver9827/folly,colemancda/folly,theiver9827/folly,tomhughes/folly,gaoyingie/folly,romange/folly,fw1121/folly,stonegithubs/folly,clearlinux/folly,brunomorishita/folly,romange/folly,bikong2/folly,Eagle-X/folly,loverszhaokai/folly,sonnyhu/folly,shaobz/folly,SeanRBurton/folly,bikong2/folly,CJstar/folly,KSreeHarsha/folly,renyinew/folly,romange/folly,alexst07/folly,clearlylin/folly,PoisonBOx/folly,guker/folly,gavioto/folly,lifei/folly,KSreeHarsha/folly,juniway/folly,hongliangzhao/folly,brunomorishita/folly,cole14/folly,constantine001/folly,alexst07/folly,xzmagic/folly,arg0/folly,SeanRBurton/folly,kernelim/folly,stonegithubs/folly,cppfool/folly,doctaweeks/folly,romange/folly,tempbottle/folly,theiver9827/folly,bobegir/folly,hongliangzhao/folly,floxard/folly,xzmagic/folly,xzmagic/folly,CJstar/folly,mqeizi/folly,hongliangzhao/folly,cppfool/folly,yangjin-unique/folly,Orvid/folly,cppfool/folly,Eagle-X/folly,clearlinux/folly,stonegithubs/folly,juniway/folly,guker/folly,loverszhaokai/folly,hongliangzhao/folly,arg0/folly,sakishum/folly,doctaweeks/folly,wildinto/folly,floxard/folly,Orvid/folly,SammyK/folly,upsoft/folly,sonnyhu/folly,sakishum/folly,brunomorishita/folly,cole14/folly,bikong2/folly,clearlylin/folly,wildinto/folly,shaobz/folly,nickhen/folly,CJstar/folly,PPC64/folly,PoisonBOx/folly,bowlofstew/folly,bowlofstew/folly,clearlinux/folly,facebook/folly,project-zerus/folly,fw1121/folly,rklabs/folly,lifei/folly,xzmagic/folly,alexst07/folly,ykarlsbrun/folly,sakishum/folly,guker/folly,bobegir/folly,shaobz/folly,reddit/folly,kernelim/folly,juniway/folly,sakishum/folly,stonegithubs/folly,constantine001/folly,doctaweeks/folly,doctaweeks/folly,yangjin-unique/folly,arg0/folly,charsyam/folly,PoisonBOx/folly,nickhen/folly,kernelim/folly,cppfool/folly,tempbottle/folly,bobegir/folly,clearlylin/folly,juniway/folly,tomhughes/folly,facebook/folly,yangjin-unique/folly,arg0/folly,Orvid/folly,bowlofstew/folly,gaoyingie/folly,bsampath/folly,renyinew/folly,cppfool/folly,upsoft/folly,ykarlsbrun/folly,nickhen/folly,guker/folly,brunomorishita/folly,juniway/folly,loversInJapan/folly,upsoft/folly,Eagle-X/folly,leolujuyi/folly,charsyam/folly,leolujuyi/folly,tempbottle/folly,KSreeHarsha/folly,reddit/folly,raphaelamorim/folly,shaobz/folly,mqeizi/folly,raphaelamorim/folly,ykarlsbrun/folly,gavioto/folly,stonegithubs/folly,tomhughes/folly,Orvid/folly,clearlylin/folly,mqeizi/folly,upsoft/folly,bikong2/folly,chjp2046/folly,SammyK/folly,zhiweicai/folly,chjp2046/folly,clearlinux/folly,cole14/folly,loversInJapan/folly,PPC64/folly,raphaelamorim/folly,shaobz/folly,lifei/folly,brunomorishita/folly,Hincoin/folly,cole14/folly,arg0/folly,constantine001/folly,chjp2046/folly,SeanRBurton/folly,colemancda/folly,SeanRBurton/folly,reddit/folly,loverszhaokai/folly,mqeizi/folly,doctaweeks/folly,facebook/folly,zhiweicai/folly,leolujuyi/folly,yangjin-unique/folly,sonnyhu/folly,tempbottle/folly,Hincoin/folly,zhiweicai/folly