fix(injector): allow multiple loading of function modules

move the loadedModules lookup to be performed only on strings in order to allow loading functions that look the same. this issue caused only the first `angular.mock.module(object)` invocation to work since the loadModules lookup blocked all following invocations.

closes #7254
@caitp your attempt to fix this by cleaning up the hashKey in afterEach resulted in the 14 failed tests?

And that was because the scope ids got shifted due to the module loader, right?

Since the IDs don't have any defined semantics (except for being unique) and we use them in our tests just because it's convenient I don't mind that the ids change when a module is added to the scope tests.

Either of 1/ and 2/ will solve the immediate issue. But neither is perfect. So pick one and merge that in please.

3/ is a bit heavy weight, so I'd rather avoid it.