Use extern-worker in HPHPc
Summary:
Switch HPHPc over from using multiple threads invoking HackC locally,
to using the extern-worker framework to do the parsing.
Since extern-worker uses coroutines, this involved making the file
discovery and parsing logic async. The main complexity is around
grouping the source files to maximum extern-worker cache effectiveness
(see comment in package.cpp for details).
The code under compiler/ is increasing odd due to more and more
functionality being stripped out. Next I'll try to refactor some of it
and make it more logical.
Reviewed By: edwinsmith, mofarrell
Differential Revision:
D34780989
fbshipit-source-id:
8a504694af559727f68b61c477751e105d9b8183