test(injector): Recover from errors
perf(injector): Track resolving keys with the frame.
perf(injector): Do not check the circular dependency until we are 30 deep.
perf(injector): Do not closurize methods.
perf(injector): Make resolving a linked-list stored with the frame
test(injector): test for circular dependency in in factory calls
perf(resolvedTypes): minor performance inmprovement in resolvedTypes
fix(warnings): refactored injector to fix analyzer warnings