Issue #4.  Removal of dead code.
Fix issue #3 & #2.  Missing variable initialization and type checking.
Issue #1. Added method annontations on classes implementing __call.
Fix issue #5.  Removal of dupe code.
Manual implemenation of scrutinizer-ci pull request.
First stage refactoring of ModuleFetch __construct (reducing size).
Merge s-ci fixes