Add tools/hash_reqs.py.
Add tools/hash_reqs.py.

tools/hash_reqs.py generates a hash of a requirements file.  It
does that by generating a sorted list of unique dependencies referred
to by that requirements file.  To do that, it also recurses into other
requirements files specified inside that requirements file.

grave-w-grave/zulip,mahim97/zulip,dattatreya303/zulip,brockwhittaker/zulip,mohsenSy/zulip,showell/zulip,hackerkid/zulip,KingxBanana/zulip,showell/zulip,kou/zulip,timabbott/zulip,brainwane/zulip,jphilipsen05/zulip,timabbott/zulip,TigorC/zulip,amanharitsh123/zulip,niftynei/zulip,TigorC/zulip,j831/zulip,arpith/zulip,umkay/zulip,krtkmj/zulip,dhcrzf/zulip,rht/zulip,timabbott/zulip,isht3/zulip,eeshangarg/zulip,synicalsyntax/zulip,verma-varsha/zulip,synicalsyntax/zulip,SmartPeople/zulip,amyliu345/zulip,eeshangarg/zulip,brockwhittaker/zulip,eeshangarg/zulip,samatdav/zulip,zulip/zulip,KingxBanana/zulip,hackerkid/zulip,AZtheAsian/zulip,Jianchun1/zulip,jackrzhang/zulip,brainwane/zulip,dattatreya303/zulip,j831/zulip,vabs22/zulip,jphilipsen05/zulip,joyhchen/zulip,zacps/zulip,SmartPeople/zulip,sonali0901/zulip,blaze225/zulip,dhcrzf/zulip,calvinleenyc/zulip,susansls/zulip,hackerkid/zulip,aakash-cr7/zulip,jainayush975/zulip,Juanvulcano/zulip,ryanbackman/zulip,brockwhittaker/zulip,christi3k/zulip,brainwane/zulip,jrowan/zulip,mohsenSy/zulip,sup95/zulip,dhcrzf/zulip,shubhamdhama/zulip,vikas-parashar/zulip,shubhamdhama/zulip,grave-w-grave/zulip,synicalsyntax/zulip,tommyip/zulip,sonali0901/zulip,umkay/zulip,eeshangarg/zulip,tommyip/zulip,ahmadassaf/zulip,Juanvulcano/zulip,vaidap/zulip,peguin40/zulip,PhilSk/zulip,brainwane/zulip,sharmaeklavya2/zulip,vikas-parashar/zulip,punchagan/zulip,christi3k/zulip,jrowan/zulip,Jianchun1/zulip,shubhamdhama/zulip,dhcrzf/zulip,vaidap/zulip,andersk/zulip,mahim97/zulip,showell/zulip,ahmadassaf/zulip,krtkmj/zulip,souravbadami/zulip,jphilipsen05/zulip,sonali0901/zulip,rht/zulip,Galexrt/zulip,zacps/zulip,paxapy/zulip,rht/zulip,amanharitsh123/zulip,ahmadassaf/zulip,rht/zulip,punchagan/zulip,PhilSk/zulip,jrowan/zulip,Juanvulcano/zulip,dattatreya303/zulip,blaze225/zulip,KingxBanana/zulip,cosmicAsymmetry/zulip,isht3/zulip,umkay/zulip,umkay/zulip,PhilSk/zulip,ryanbackman/zulip,amyliu345/zulip,sharmaeklavya2/zulip,reyha/zulip,jrowan/zulip,reyha/zulip,andersk/zulip,vabs22/zulip,synicalsyntax/zulip,showell/zulip,vaidap/zulip,cosmicAsymmetry/zulip,isht3/zulip,verma-varsha/zulip,cosmicAsymmetry/zulip,zulip/zulip,jphilipsen05/zulip,souravbadami/zulip,sup95/zulip,kou/zulip,christi3k/zulip,AZtheAsian/zulip,mahim97/zulip,Jianchun1/zulip,kou/zulip,TigorC/zulip,jainayush975/zulip,ryanbackman/zulip,dhcrzf/zulip,amyliu345/zulip,PhilSk/zulip,PhilSk/zulip,paxapy/zulip,arpith/zulip,dawran6/zulip,shubhamdhama/zulip,jphilipsen05/zulip,calvinleenyc/zulip,grave-w-grave/zulip,isht3/zulip,paxapy/zulip,hackerkid/zulip,SmartPeople/zulip,Galexrt/zulip,synicalsyntax/zulip,arpith/zulip,timabbott/zulip,jrowan/zulip,synicalsyntax/zulip,calvinleenyc/zulip,JPJPJPOPOP/zulip,mahim97/zulip,TigorC/zulip,zulip/zulip,KingxBanana/zulip,TigorC/zulip,andersk/zulip,KingxBanana/zulip,Diptanshu8/zulip,susansls/zulip,rishig/zulip,kou/zulip,AZtheAsian/zulip,timabbott/zulip,ahmadassaf/zulip,jainayush975/zulip,verma-varsha/zulip,blaze225/zulip,punchagan/zulip,Diptanshu8/zulip,isht3/zulip,ryanbackman/zulip,ryanbackman/zulip,brockwhittaker/zulip,verma-varsha/zulip,vabs22/zulip,tommyip/zulip,Jianchun1/zulip,dattatreya303/zulip,dawran6/zulip,sonali0901/zulip,peguin40/zulip,Diptanshu8/zulip,aakash-cr7/zulip,samatdav/zulip,samatdav/zulip,Galexrt/zulip,amanharitsh123/zulip,niftynei/zulip,calvinleenyc/zulip,j831/zulip,Juanvulcano/zulip,peguin40/zulip,hackerkid/zulip,aakash-cr7/zulip,krtkmj/zulip,rht/zulip,umkay/zulip,aakash-cr7/zulip,verma-varsha/zulip,arpith/zulip,AZtheAsian/zulip,jainayush975/zulip,mohsenSy/zulip,rishig/zulip,blaze225/zulip,samatdav/zulip,Diptanshu8/zulip,amyliu345/zulip,cosmicAsymmetry/zulip,sup95/zulip,zacps/zulip,sup95/zulip,brainwane/zulip,mahim97/zulip,susansls/zulip,SmartPeople/zulip,souravbadami/zulip,ahmadassaf/zulip,niftynei/zulip,zulip/zulip,reyha/zulip,showell/zulip,joyhchen/zulip,kou/zulip,jackrzhang/zulip,amanharitsh123/zulip,calvinleenyc/zulip,jackrzhang/zulip,dawran6/zulip,susansls/zulip,peguin40/zulip,sonali0901/zulip,dawran6/zulip,reyha/zulip,Galexrt/zulip,punchagan/zulip,vikas-parashar/zulip,arpith/zulip,hackerkid/zulip,brainwane/zulip,vaidap/zulip,joyhchen/zulip,mohsenSy/zulip,souravbadami/zulip,christi3k/zulip,tommyip/zulip,peguin40/zulip,jackrzhang/zulip,sonali0901/zulip,umkay/zulip,Juanvulcano/zulip,reyha/zulip,jphilipsen05/zulip,niftynei/zulip,timabbott/zulip,j831/zulip,jrowan/zulip,blaze225/zulip,vikas-parashar/zulip,jainayush975/zulip,Galexrt/zulip,samatdav/zulip,rishig/zulip,rishig/zulip,sup95/zulip,mahim97/zulip,eeshangarg/zulip,sharmaeklavya2/zulip,zacps/zulip,KingxBanana/zulip,andersk/zulip,Diptanshu8/zulip,christi3k/zulip,dattatreya303/zulip,rishig/zulip,rht/zulip,joyhchen/zulip,mohsenSy/zulip,brockwhittaker/zulip,vabs22/zulip,paxapy/zulip,rht/zulip,reyha/zulip,krtkmj/zulip,cosmicAsymmetry/zulip,susansls/zulip,grave-w-grave/zulip,souravbadami/zulip,JPJPJPOPOP/zulip,Galexrt/zulip,paxapy/zulip,punchagan/zulip,punchagan/zulip,vikas-parashar/zulip,dawran6/zulip,rishig/zulip,sharmaeklavya2/zulip,joyhchen/zulip,souravbadami/zulip,calvinleenyc/zulip,andersk/zulip,vikas-parashar/zulip,shubhamdhama/zulip,brockwhittaker/zulip,jackrzhang/zulip,jackrzhang/zulip,vaidap/zulip,andersk/zulip,krtkmj/zulip,punchagan/zulip,verma-varsha/zulip,grave-w-grave/zulip,synicalsyntax/zulip,shubhamdhama/zulip,niftynei/zulip,kou/zulip,vaidap/zulip,Diptanshu8/zulip,SmartPeople/zulip,timabbott/zulip,grave-w-grave/zulip,amyliu345/zulip,Jianchun1/zulip,amyliu345/zulip,showell/zulip,ahmadassaf/zulip,AZtheAsian/zulip,ryanbackman/zulip,ahmadassaf/zulip,showell/zulip,mohsenSy/zulip,TigorC/zulip,zacps/zulip,j831/zulip,rishig/zulip,j831/zulip,samatdav/zulip,niftynei/zulip,Jianchun1/zulip,aakash-cr7/zulip,Galexrt/zulip,joyhchen/zulip,umkay/zulip,JPJPJPOPOP/zulip,vabs22/zulip,jainayush975/zulip,zulip/zulip,andersk/zulip,vabs22/zulip,amanharitsh123/zulip,hackerkid/zulip,blaze225/zulip,peguin40/zulip,JPJPJPOPOP/zulip,zulip/zulip,aakash-cr7/zulip,shubhamdhama/zulip,amanharitsh123/zulip,tommyip/zulip,susansls/zulip,christi3k/zulip,eeshangarg/zulip,sup95/zulip,zulip/zulip,Juanvulcano/zulip,sharmaeklavya2/zulip,krtkmj/zulip,jackrzhang/zulip,sharmaeklavya2/zulip,kou/zulip,brainwane/zulip,dattatreya303/zulip,eeshangarg/zulip,krtkmj/zulip,dawran6/zulip,paxapy/zulip,tommyip/zulip,JPJPJPOPOP/zulip,isht3/zulip,SmartPeople/zulip,tommyip/zulip,dhcrzf/zulip,dhcrzf/zulip,AZtheAsian/zulip,PhilSk/zulip,arpith/zulip,JPJPJPOPOP/zulip,cosmicAsymmetry/zulip,zacps/zulip