auto merge of #3820 : cgaebel/servo/rebase-lalehs-patch, r=pcwalton
auto merge of #3820 : cgaebel/servo/rebase-lalehs-patch, r=pcwalton

I addressed all but one of the code review comments, which was a request
for documentation on where a number came from (which I'm not qualified to
answer), and rebased this on to latest master.

xref: #3505 cc: @LalehB @larsbergstrom

r? @pcwalton

evilpie/servo,pgonda/servo,sadmansk/servo,splav/servo,chotchki/servo,kindersung/servo,snf/servo,sadmansk/servo,steveklabnik/servo,aweinstock314/servo,deokjinkim/servo,brendandahl/servo,splav/servo,pgonda/servo,GyrosOfWar/servo,A-deLuna/servo,wartman4404/servo,notriddle/servo,dmarcos/servo,mdibaiee/servo,saneyuki/servo,shrenikgala/servo,boghison/servo,wpgallih/servo,DominoTree/servo,dsandeephegde/servo,bjwbell/servo,tschneidereit/servo,jgraham/servo,thiagopnts/servo,canaltinova/servo,zhangjunlei26/servo,ruud-v-a/servo,sadmansk/servo,jdramani/servo,A-deLuna/servo,srbhklkrn/SERVOENGINE,eddyb/servo,ConnorGBrewster/servo,szeged/servo,canaltinova/servo,rixrix/servo,upsuper/servo,walac/servo,paulrouget/servo,pyfisch/servo,dagnir/servo,larsbergstrom/servo,nnethercote/servo,srbhklkrn/SERVOENGINE,szeged/servo,cbrewster/servo,dhananjay92/servo,dmarcos/servo,mbrubeck/servo,steveklabnik/servo,eddyb/servo,rentongzhang/servo,samfoo/servo,nrc/servo,KiChjang/servo,AnthonyBroadCrawford/servo,emilio/servo,mdibaiee/servo,canaltinova/servo,dagnir/servo,s142857/servo,rnestler/servo,wpgallih/servo,evilpie/servo,dmarcos/servo,thiagopnts/servo,akosel/servo,paulrouget/servo,karlito40/servo,indykish/servo,bjwbell/servo,szeged/servo,emilio/servo,vks/servo,dhananjay92/servo,youprofit/servo,michaelwu/servo,dati91/servo,szeged/servo,mbrubeck/servo,karlito40/servo,hyowon/servo,Adenilson/prototype-viewing-distance,luniv/servo,KiChjang/servo,cbrewster/servo,wartman4404/servo,caldwell/servo,SimonSapin/servo,GyrosOfWar/servo,dagnir/servo,pyecs/servo,nerith/servo,saneyuki/servo,upsuper/servo,walac/servo,youprofit/servo,Adenilson/prototype-viewing-distance,splav/servo,dhananjay92/servo,bfrohs/servo,pgonda/servo,wartman4404/servo,youprofit/servo,s142857/servo,jgraham/servo,luniv/servo,pyecs/servo,vks/servo,szeged/servo,mukilan/servo,pgonda/servo,walac/servo,dagnir/servo,echochamber/servo,dsandeephegde/servo,nerith/servo,brendandahl/servo,nrc/servo,jdramani/servo,boghison/servo,snf/servo,wartman4404/servo,shrenikgala/servo,nerith/servo,fiji-flo/servo,GreenRecycleBin/servo,peterjoel/servo,rixrix/servo,akosel/servo,karlito40/servo,ConnorGBrewster/servo,boghison/servo,emilio/servo,GreenRecycleBin/servo,upsuper/servo,ruud-v-a/servo,DominoTree/servo,sadmansk/servo,emilio/servo,canaltinova/servo,echochamber/servo,avadacatavra/servo,jimberlage/servo,notriddle/servo,ryancanhelpyou/servo,GyrosOfWar/servo,aweinstock314/servo,nick-thompson/servo,mt2d2/servo,cbrewster/servo,anthgur/servo,ruud-v-a/servo,aidanhs/servo,j3parker/servo,GreenRecycleBin/servo,bjwbell/servo,mt2d2/servo,g-k/servo,michaelwu/servo,shrenikgala/servo,srbhklkrn/SERVOENGINE,DominoTree/servo,shrenikgala/servo,dmarcos/servo,runarberg/servo,saneyuki/servo,zhangjunlei26/servo,mattnenterprise/servo,froydnj/servo,brendandahl/servo,akosel/servo,anthgur/servo,saneyuki/servo,evilpie/servo,saneyuki/servo,A-deLuna/servo,ryancanhelpyou/servo,jlegendary/servo,aweinstock314/servo,splav/servo,ConnorGBrewster/servo,dati91/servo,walac/servo,GyrosOfWar/servo,deokjinkim/servo,deokjinkim/servo,tafia/servo,pyfisch/servo,samfoo/servo,g-k/servo,nick-thompson/servo,indykish/servo,evilpie/servo,notriddle/servo,mt2d2/servo,splav/servo,szeged/servo,mattnenterprise/servo,cbrewster/servo,GreenRecycleBin/servo,mattnenterprise/servo,Adenilson/prototype-viewing-distance,luniv/servo,eddyb/servo,zhangjunlei26/servo,nick-thompson/servo,rentongzhang/servo,jimberlage/servo,emilio/servo,kindersung/servo,akosel/servo,avadacatavra/servo,larsbergstrom/servo,brendandahl/servo,larsbergstrom/servo,jimberlage/servo,chotchki/servo,mukilan/servo,dati91/servo,vks/servo,chotchki/servo,meh/servo,wartman4404/servo,peterjoel/servo,mdibaiee/servo,ryancanhelpyou/servo,WriterOfAlicrow/servo,akosel/servo,GyrosOfWar/servo,bfrohs/servo,GyrosOfWar/servo,hyowon/servo,rixrix/servo,paulrouget/servo,rixrix/servo,GreenRecycleBin/servo,dagnir/servo,canaltinova/servo,kindersung/servo,g-k/servo,samfoo/servo,SimonSapin/servo,CJ8664/servo,codemac/servo,kindersung/servo,evilpie/servo,nerith/servo,saneyuki/servo,dvberkel/servo,nrc/servo,wpgallih/servo,deokjinkim/servo,nrc/servo,kindersung/servo,CJ8664/servo,mattnenterprise/servo,aweinstock314/servo,meh/servo,luniv/servo,avadacatavra/servo,runarberg/servo,dvberkel/servo,deokjinkim/servo,avadacatavra/servo,avadacatavra/servo,nick-thompson/servo,g-k/servo,CJ8664/servo,jdramani/servo,rixrix/servo,AnthonyBroadCrawford/servo,DominoTree/servo,kindersung/servo,rnestler/servo,meh/servo,froydnj/servo,snf/servo,nnethercote/servo,youprofit/servo,michaelwu/servo,dvberkel/servo,michaelwu/servo,bfrohs/servo,paulrouget/servo,mbrubeck/servo,walac/servo,notriddle/servo,runarberg/servo,ConnorGBrewster/servo,rixrix/servo,A-deLuna/servo,WriterOfAlicrow/servo,j3parker/servo,tschneidereit/servo,larsbergstrom/servo,mdibaiee/servo,upsuper/servo,zentner-kyle/servo,RenaudParis/servo,KiChjang/servo,saratang/servo,chotchki/servo,DominoTree/servo,indykish/servo,KiChjang/servo,bjwbell/servo,bfrohs/servo,ryancanhelpyou/servo,rixrix/servo,indykish/servo,GreenRecycleBin/servo,avadacatavra/servo,akosel/servo,Adenilson/prototype-viewing-distance,mattnenterprise/servo,pyecs/servo,pyfisch/servo,mukilan/servo,indykish/servo,huonw/servo,larsbergstrom/servo,pyfisch/servo,mt2d2/servo,aidanhs/servo,dmarcos/servo,samfoo/servo,jdramani/servo,splav/servo,upsuper/servo,jlegendary/servo,caldwell/servo,ryancanhelpyou/servo,fiji-flo/servo,zentner-kyle/servo,huonw/servo,boghison/servo,jimberlage/servo,pyfisch/servo,dsandeephegde/servo,youprofit/servo,peterjoel/servo,luniv/servo,larsbergstrom/servo,pyecs/servo,runarberg/servo,SimonSapin/servo,jgraham/servo,wartman4404/servo,mbrubeck/servo,dsandeephegde/servo,zentner-kyle/servo,jdramani/servo,jimberlage/servo,tafia/servo,nnethercote/servo,nnethercote/servo,dati91/servo,saneyuki/servo,pyfisch/servo,caldwell/servo,emilio/servo,anthgur/servo,meh/servo,wpgallih/servo,deokjinkim/servo,boghison/servo,notriddle/servo,fiji-flo/servo,peterjoel/servo,tafia/servo,A-deLuna/servo,karlito40/servo,dati91/servo,peterjoel/servo,KiChjang/servo,eddyb/servo,zentner-kyle/servo,sadmansk/servo,wpgallih/servo,tschneidereit/servo,boghison/servo,GreenRecycleBin/servo,samfoo/servo,tempbottle/servo,rentongzhang/servo,snf/servo,dati91/servo,jlegendary/servo,dhananjay92/servo,indykish/servo,michaelwu/servo,saneyuki/servo,rnestler/servo,echochamber/servo,peterjoel/servo,huonw/servo,bjwbell/servo,vks/servo,mattnenterprise/servo,saneyuki/servo,nrc/servo,wpgallih/servo,emilio/servo,saratang/servo,ConnorGBrewster/servo,nrc/servo,DominoTree/servo,j3parker/servo,wpgallih/servo,akosel/servo,rnestler/servo,mdibaiee/servo,pgonda/servo,ruud-v-a/servo,karlito40/servo,zhangjunlei26/servo,nerith/servo,steveklabnik/servo,wpgallih/servo,snf/servo,Adenilson/prototype-viewing-distance,vks/servo,thiagopnts/servo,peterjoel/servo,ConnorGBrewster/servo,aidanhs/servo,sadmansk/servo,Shraddha512/servo,DominoTree/servo,jgraham/servo,larsbergstrom/servo,DominoTree/servo,aweinstock314/servo,cbrewster/servo,nick-thompson/servo,j3parker/servo,aweinstock314/servo,chotchki/servo,emilio/servo,splav/servo,huonw/servo,bfrohs/servo,steveklabnik/servo,j3parker/servo,ryancanhelpyou/servo,nick-thompson/servo,michaelwu/servo,youprofit/servo,s142857/servo,shrenikgala/servo,peterjoel/servo,wartman4404/servo,eddyb/servo,mattnenterprise/servo,paulrouget/servo,pgonda/servo,nick-thompson/servo,KiChjang/servo,codemac/servo,ruud-v-a/servo,AnthonyBroadCrawford/servo,mukilan/servo,jimberlage/servo,echochamber/servo,runarberg/servo,RenaudParis/servo,rentongzhang/servo,hyowon/servo,j3parker/servo,aidanhs/servo,WriterOfAlicrow/servo,AnthonyBroadCrawford/servo,zhangjunlei26/servo,CJ8664/servo,pyfisch/servo,bfrohs/servo,s142857/servo,bjwbell/servo,pyfisch/servo,Adenilson/prototype-viewing-distance,deokjinkim/servo,echochamber/servo,emilio/servo,avadacatavra/servo,tempbottle/servo,ConnorGBrewster/servo,anthgur/servo,emilio/servo,mukilan/servo,RenaudParis/servo,paulrouget/servo,rentongzhang/servo,cbrewster/servo,shrenikgala/servo,CJ8664/servo,hyowon/servo,SimonSapin/servo,indykish/servo,dmarcos/servo,saratang/servo,WriterOfAlicrow/servo,jdramani/servo,RenaudParis/servo,mukilan/servo,RenaudParis/servo,ryancanhelpyou/servo,indykish/servo,evilpie/servo,mbrubeck/servo,eddyb/servo,sadmansk/servo,rnestler/servo,Shraddha512/servo,huonw/servo,chotchki/servo,larsbergstrom/servo,dvberkel/servo,tempbottle/servo,Shraddha512/servo,ruud-v-a/servo,nerith/servo,froydnj/servo,zentner-kyle/servo,AnthonyBroadCrawford/servo,jlegendary/servo,tschneidereit/servo,srbhklkrn/SERVOENGINE,walac/servo,karlito40/servo,codemac/servo,jlegendary/servo,SimonSapin/servo,snf/servo,jlegendary/servo,anthgur/servo,luniv/servo,hyowon/servo,avadacatavra/servo,mbrubeck/servo,splav/servo,dati91/servo,caldwell/servo,rnestler/servo,vks/servo,mbrubeck/servo,caldwell/servo,rixrix/servo,saratang/servo,canaltinova/servo,fiji-flo/servo,indykish/servo,brendandahl/servo,dvberkel/servo,g-k/servo,nerith/servo,codemac/servo,SimonSapin/servo,GyrosOfWar/servo,samfoo/servo,dsandeephegde/servo,pyecs/servo,zhangjunlei26/servo,steveklabnik/servo,dhananjay92/servo,nnethercote/servo,shrenikgala/servo,brendandahl/servo,nnethercote/servo,mt2d2/servo,s142857/servo,jdramani/servo,rentongzhang/servo,WriterOfAlicrow/servo,thiagopnts/servo,steveklabnik/servo,mbrubeck/servo,thiagopnts/servo,jlegendary/servo,aidanhs/servo,thiagopnts/servo,karlito40/servo,SimonSapin/servo,cbrewster/servo,caldwell/servo,echochamber/servo,tafia/servo,paulrouget/servo,CJ8664/servo,jgraham/servo,dvberkel/servo,szeged/servo,zhangjunlei26/servo,runarberg/servo,paulrouget/servo,meh/servo,dati91/servo,nnethercote/servo,kindersung/servo,RenaudParis/servo,rnestler/servo,aidanhs/servo,eddyb/servo,evilpie/servo,zhangjunlei26/servo,codemac/servo,bjwbell/servo,Shraddha512/servo,canaltinova/servo,s142857/servo,splav/servo,pyecs/servo,DominoTree/servo,AnthonyBroadCrawford/servo,canaltinova/servo,dagnir/servo,tschneidereit/servo,jgraham/servo,peterjoel/servo,wpgallih/servo,peterjoel/servo,luniv/servo,anthgur/servo,notriddle/servo,dvberkel/servo,splav/servo,KiChjang/servo,mt2d2/servo,CJ8664/servo,notriddle/servo,echochamber/servo,AnthonyBroadCrawford/servo,snf/servo,notriddle/servo,paulrouget/servo,SimonSapin/servo,KiChjang/servo,DominoTree/servo,cbrewster/servo,tempbottle/servo,dhananjay92/servo,codemac/servo,boghison/servo,dsandeephegde/servo,tempbottle/servo,nnethercote/servo,brendandahl/servo,rnestler/servo,anthgur/servo,eddyb/servo,Adenilson/prototype-viewing-distance,tempbottle/servo,thiagopnts/servo,huonw/servo,szeged/servo,meh/servo,zentner-kyle/servo,codemac/servo,evilpie/servo,pgonda/servo,A-deLuna/servo,huonw/servo,dhananjay92/servo,sadmansk/servo,notriddle/servo,paulrouget/servo,WriterOfAlicrow/servo,larsbergstrom/servo,rentongzhang/servo,g-k/servo,jimberlage/servo,walac/servo,tafia/servo,ConnorGBrewster/servo,aidanhs/servo,zentner-kyle/servo,WriterOfAlicrow/servo,fiji-flo/servo,jgraham/servo,GreenRecycleBin/servo,Shraddha512/servo,pyecs/servo,rixrix/servo,tschneidereit/servo,notriddle/servo,dmarcos/servo,saneyuki/servo,A-deLuna/servo,tafia/servo,srbhklkrn/SERVOENGINE,nnethercote/servo,mt2d2/servo,samfoo/servo,s142857/servo,srbhklkrn/SERVOENGINE,szeged/servo,Shraddha512/servo,thiagopnts/servo,fiji-flo/servo,pyfisch/servo,mdibaiee/servo,tschneidereit/servo,zhangjunlei26/servo,youprofit/servo,runarberg/servo,meh/servo,saratang/servo,hyowon/servo,j3parker/servo,tafia/servo,fiji-flo/servo,srbhklkrn/SERVOENGINE,Shraddha512/servo,jimberlage/servo,mattnenterprise/servo,jimberlage/servo,szeged/servo,vks/servo,GreenRecycleBin/servo,nnethercote/servo,caldwell/servo,dsandeephegde/servo,hyowon/servo,fiji-flo/servo,RenaudParis/servo,aweinstock314/servo,dsandeephegde/servo,upsuper/servo,larsbergstrom/servo,tempbottle/servo,anthgur/servo,saratang/servo,saratang/servo,upsuper/servo,froydnj/servo,dagnir/servo,KiChjang/servo,mdibaiee/servo,g-k/servo,evilpie/servo,CJ8664/servo,froydnj/servo,upsuper/servo,pyfisch/servo,KiChjang/servo,steveklabnik/servo,froydnj/servo,nrc/servo