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.
Thinking out loud: Could you coalesce the 2 exceptions and add the circular dep detection logic in the exception and change the message accordingly ?