I put an extractor into your extract so you can extract while you
extract.
This allows integrators to call Extractor as a library. Also refactors
Extractor a bit so that callers need fewer arguments or arguments that
are at the right semantic level.
The refactoring causes no function change.
Refactored ReflectorHost to allow it to be tested.
Fixed an issue where the .d.ts was findable but it wasn't used by the project
(This happens when the .metadata.json file references a module that was not
needed, such as it doesn't declare any types, and the reference to it was
elided by TypeScript when writing the .d.ts file).
Added tests for ReflectorHost