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
Yes, @caitp and I discussed this yesterday (see above).
The way I see it we have the following options:
 1. Use a separate uid range only for the modules' HashMap (we can do this the way @caitp proposed or we can pass an argument in HashMap constructor to tell it to use a different range explicitly)
 2. Keep sharing the same uid range and fix the 14 tests (which will break every time a module is added to one of those tests)
 3. Change `$$hashKey` to somehow store an hash key for each HashMap (for example, each HashMap can have a uid and the $$hashKey will be an object which stores the uid for each HashMap)

I think I like option 1 (tell the HashMap in constructor to use a different uid range).
@IgorMinar @caitp - What do you think?