Implemented directive scoping

Directives can now declare their controller visibility (local, children, direct children) via $visiblity static fields.
Disabled implicit injection on the injector.
Depends on https://github.com/vojtajina/dart-di/pull/7