Fix the warnings from the singletons

The commit message explains the details. We just need to be disciplined and continue to use "use" in all modules other than modules that define singletons.

There are only a few modules used by the singletons and thus I am not concerned that we would push a potential compile time issue to runtime, especially since all the require modules are also loaded and compiled when the unit tests run.