reset extern compilers in forked processes
Summary:
Currently if child process created by `fork` exits - it shuts down compiler pool from the parent process. In this diff after `fork` child process detaches itself from inherited set of compilers. In case of child process itself will need to use compiler (in case of `eval` or `require` / autoload of something that was not yet loaded) - compilers will be created and initialized on demand.
Also this diff consolidates all global state used by extern-compiler.cpp under the umbrella of `CompilerManager` class.
Reviewed By: hubyrod
Differential Revision:
D6614660
fbshipit-source-id:
166fa33be1db7b46ceda37ecf01773243dda897c