feat(directive-injector): detect and throw on circular deps

The maximum depth for depth for dependency resolution is set to 50.
No performance degradation observed on tree benchmark.
The python programmer in me objects, but this seems fine for a brace-style language like Dart.