Refactor ModuleInstaller.GetInstance() singleton, decouple instances

While working on another feature I had some issues creating test cases. It appears the ModuleInstaller reuses the existing instance even though the KSP instance is changed.

This creates a set of test cases, catching this behavior and a fix for ModuleInstaller such that each KSP instance has a ModuleInstaller instance.