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 resolution chain in enclosed to mirror https://github.com/angular/di.dart/blob/eefd517315b4bf62f1b162ecc537b1565a089d84/lib/src/errors.dart 

I had to move the '('.