Cache some values in PreprocessorDelegate
Cache some values in PreprocessorDelegate

Summary:These values were being recomputed for every file, when they don't vary across
all files (with the same type/args) of a library. They contribute to over half
of the self-time spent in running the rule (not including the compiler
invocation itself), and is significant when compiling small files in libraries
with many dependencies.

Test Plan:existing tests pass.

Data from a library of 870 objc files used to test this (from trace and log):

Before: total 54 seconds (build 38 sec),  100-150ms overhead per file
After: total 42.7 seconds (build 28 sec), 40ms overhead per file

Reviewed By: Coneko

fb-gh-sync-id: 7b5d4a1
shipit-source-id: 7b5d4a1

vschs007/buck,raviagarwal7/buck,grumpyjames/buck,davido/buck,k21/buck,brettwooldridge/buck,clonetwin26/buck,shybovycha/buck,LegNeato/buck,sdwilsh/buck,dsyang/buck,daedric/buck,romanoid/buck,JoelMarcey/buck,darkforestzero/buck,raviagarwal7/buck,Addepar/buck,rowillia/buck,justinmuller/buck,OkBuilds/buck,robbertvanginkel/buck,darkforestzero/buck,janicduplessis/buck,SeleniumHQ/buck,SeleniumHQ/buck,raviagarwal7/buck,zhan-xiong/buck,romanoid/buck,SeleniumHQ/buck,raviagarwal7/buck,janicduplessis/buck,illicitonion/buck,vschs007/buck,marcinkwiatkowski/buck,illicitonion/buck,bocon13/buck,nguyentruongtho/buck,sdwilsh/buck,darkforestzero/buck,mikekap/buck,janicduplessis/buck,facebook/buck,sdwilsh/buck,janicduplessis/buck,vschs007/buck,romanoid/buck,Dominator008/buck,dsyang/buck,SeleniumHQ/buck,JoelMarcey/buck,rmaz/buck,rowillia/buck,OkBuilds/buck,vschs007/buck,vschs007/buck,rowillia/buck,rowillia/buck,zhan-xiong/buck,SeleniumHQ/buck,k21/buck,facebook/buck,LegNeato/buck,zpao/buck,davido/buck,robbertvanginkel/buck,LegNeato/buck,zhan-xiong/buck,rmaz/buck,clonetwin26/buck,davido/buck,shybovycha/buck,JoelMarcey/buck,bocon13/buck,k21/buck,OkBuilds/buck,illicitonion/buck,janicduplessis/buck,rmaz/buck,sdwilsh/buck,darkforestzero/buck,rmaz/buck,janicduplessis/buck,justinmuller/buck,rowillia/buck,grumpyjames/buck,clonetwin26/buck,shs96c/buck,Addepar/buck,Addepar/buck,vschs007/buck,facebook/buck,davido/buck,rmaz/buck,vschs007/buck,darkforestzero/buck,daedric/buck,rmaz/buck,JoelMarcey/buck,daedric/buck,shybovycha/buck,brettwooldridge/buck,SeleniumHQ/buck,zpao/buck,Addepar/buck,illicitonion/buck,ilya-klyuchnikov/buck,dsyang/buck,shs96c/buck,illicitonion/buck,brettwooldridge/buck,raviagarwal7/buck,daedric/buck,ilya-klyuchnikov/buck,darkforestzero/buck,marcinkwiatkowski/buck,clonetwin26/buck,justinmuller/buck,Addepar/buck,JoelMarcey/buck,shybovycha/buck,davido/buck,facebook/buck,vschs007/buck,shs96c/buck,ilya-klyuchnikov/buck,mikekap/buck,marcinkwiatkowski/buck,Dominator008/buck,Dominator008/buck,LegNeato/buck,robbertvanginkel/buck,k21/buck,ilya-klyuchnikov/buck,brettwooldridge/buck,facebook/buck,ilya-klyuchnikov/buck,romanoid/buck,davido/buck,dsyang/buck,darkforestzero/buck,daedric/buck,LegNeato/buck,SeleniumHQ/buck,JoelMarcey/buck,clonetwin26/buck,grumpyjames/buck,nguyentruongtho/buck,Dominator008/buck,romanoid/buck,SeleniumHQ/buck,ilya-klyuchnikov/buck,bocon13/buck,daedric/buck,bocon13/buck,janicduplessis/buck,zhan-xiong/buck,zhan-xiong/buck,clonetwin26/buck,LegNeato/buck,raviagarwal7/buck,clonetwin26/buck,OkBuilds/buck,darkforestzero/buck,robbertvanginkel/buck,brettwooldridge/buck,JoelMarcey/buck,daedric/buck,kageiit/buck,Dominator008/buck,bocon13/buck,Dominator008/buck,grumpyjames/buck,brettwooldridge/buck,rowillia/buck,rowillia/buck,illicitonion/buck,brettwooldridge/buck,janicduplessis/buck,davido/buck,Addepar/buck,daedric/buck,zhan-xiong/buck,robbertvanginkel/buck,bocon13/buck,bocon13/buck,grumpyjames/buck,kageiit/buck,kageiit/buck,LegNeato/buck,brettwooldridge/buck,sdwilsh/buck,shs96c/buck,mikekap/buck,k21/buck,rmaz/buck,janicduplessis/buck,ilya-klyuchnikov/buck,romanoid/buck,marcinkwiatkowski/buck,shybovycha/buck,mikekap/buck,Dominator008/buck,shs96c/buck,mikekap/buck,robbertvanginkel/buck,Addepar/buck,raviagarwal7/buck,marcinkwiatkowski/buck,shs96c/buck,nguyentruongtho/buck,romanoid/buck,grumpyjames/buck,raviagarwal7/buck,facebook/buck,marcinkwiatkowski/buck,OkBuilds/buck,robbertvanginkel/buck,sdwilsh/buck,shybovycha/buck,robbertvanginkel/buck,OkBuilds/buck,JoelMarcey/buck,illicitonion/buck,clonetwin26/buck,brettwooldridge/buck,romanoid/buck,davido/buck,k21/buck,vschs007/buck,k21/buck,kageiit/buck,rowillia/buck,kageiit/buck,clonetwin26/buck,bocon13/buck,ilya-klyuchnikov/buck,romanoid/buck,OkBuilds/buck,shs96c/buck,brettwooldridge/buck,shybovycha/buck,robbertvanginkel/buck,zpao/buck,Dominator008/buck,shs96c/buck,k21/buck,nguyentruongtho/buck,k21/buck,brettwooldridge/buck,janicduplessis/buck,robbertvanginkel/buck,rmaz/buck,mikekap/buck,LegNeato/buck,marcinkwiatkowski/buck,marcinkwiatkowski/buck,bocon13/buck,OkBuilds/buck,dsyang/buck,raviagarwal7/buck,OkBuilds/buck,mikekap/buck,grumpyjames/buck,Dominator008/buck,dsyang/buck,k21/buck,romanoid/buck,LegNeato/buck,clonetwin26/buck,grumpyjames/buck,illicitonion/buck,illicitonion/buck,rmaz/buck,mikekap/buck,OkBuilds/buck,k21/buck,shs96c/buck,grumpyjames/buck,zhan-xiong/buck,OkBuilds/buck,justinmuller/buck,rowillia/buck,darkforestzero/buck,illicitonion/buck,shybovycha/buck,vschs007/buck,zhan-xiong/buck,illicitonion/buck,grumpyjames/buck,dsyang/buck,illicitonion/buck,justinmuller/buck,ilya-klyuchnikov/buck,vschs007/buck,davido/buck,JoelMarcey/buck,Addepar/buck,justinmuller/buck,justinmuller/buck,dsyang/buck,sdwilsh/buck,Dominator008/buck,JoelMarcey/buck,sdwilsh/buck,SeleniumHQ/buck,dsyang/buck,marcinkwiatkowski/buck,romanoid/buck,OkBuilds/buck,vschs007/buck,LegNeato/buck,ilya-klyuchnikov/buck,zhan-xiong/buck,darkforestzero/buck,justinmuller/buck,sdwilsh/buck,brettwooldridge/buck,bocon13/buck,SeleniumHQ/buck,clonetwin26/buck,dsyang/buck,dsyang/buck,mikekap/buck,dsyang/buck,justinmuller/buck,daedric/buck,kageiit/buck,illicitonion/buck,raviagarwal7/buck,clonetwin26/buck,davido/buck,zpao/buck,daedric/buck,rmaz/buck,marcinkwiatkowski/buck,darkforestzero/buck,rmaz/buck,janicduplessis/buck,SeleniumHQ/buck,zpao/buck,shs96c/buck,daedric/buck,nguyentruongtho/buck,facebook/buck,vschs007/buck,SeleniumHQ/buck,Addepar/buck,marcinkwiatkowski/buck,ilya-klyuchnikov/buck,justinmuller/buck,nguyentruongtho/buck,darkforestzero/buck,brettwooldridge/buck,mikekap/buck,grumpyjames/buck,davido/buck,romanoid/buck,raviagarwal7/buck,sdwilsh/buck,bocon13/buck,shybovycha/buck,ilya-klyuchnikov/buck,shs96c/buck,janicduplessis/buck,sdwilsh/buck,Addepar/buck,zhan-xiong/buck,romanoid/buck,shs96c/buck,davido/buck,LegNeato/buck,shybovycha/buck,OkBuilds/buck,justinmuller/buck,robbertvanginkel/buck,robbertvanginkel/buck,marcinkwiatkowski/buck,bocon13/buck,SeleniumHQ/buck,zhan-xiong/buck,k21/buck,justinmuller/buck,zpao/buck,nguyentruongtho/buck,sdwilsh/buck,Dominator008/buck,zhan-xiong/buck,grumpyjames/buck,Dominator008/buck,shybovycha/buck,raviagarwal7/buck,Addepar/buck,shybovycha/buck,raviagarwal7/buck,daedric/buck,JoelMarcey/buck,Addepar/buck,robbertvanginkel/buck,clonetwin26/buck,zhan-xiong/buck,rmaz/buck,shybovycha/buck,davido/buck,dsyang/buck,darkforestzero/buck,zpao/buck,kageiit/buck,JoelMarcey/buck,k21/buck,marcinkwiatkowski/buck,JoelMarcey/buck,sdwilsh/buck,LegNeato/buck,shs96c/buck,ilya-klyuchnikov/buck,Addepar/buck,rowillia/buck,daedric/buck,rowillia/buck,rowillia/buck,mikekap/buck,rmaz/buck,LegNeato/buck,mikekap/buck,justinmuller/buck