fix(DirectiveInjector): fix exceptions

Closes #1484
doc(routing): event.allowLeave() is on the PreLeave event since 0.4.21

Closes #1469
perf(util): call toLowerCase() only where needed

Closes #1468
chore(ng-class benchamrk): fixes

Closes #1465
test(parser_spec): fix analyzer warnings

Closes #1430
feat(scope): add new createProtoChild method

Internalizes PrototypeMap, and allows for easier switch to ContextLocals.
feat(compiler): support ScopeAware for decorators

Even though decorators can safely inject scope (even after the proposed
context change), they might pick up ScopeAware from a base class shared
with components. Instead of manually calling super.scope = scope, we
support ScopeAware for decorators (similarly to Attach/DetachAware.)

There is no performance reduction on the tree benchmark.
refactor(NgElement): NgElement inject RootScope instead of Scope.

NgElement only uses scope to access rootScope, so now we directly inject
RootScope.

This is needed for future change #1429 which disallows Scope injection
into controllers. Since NgElement depends on scope it would also be
disallowed, unless we change it to directly use RootScope.
Revert "feat(compiler): support ScopeAware for decorators"

This reverts commit 9659dd1721c8011bd26d1855ca268a967805c4e2.

Wrong version of this PR was added in master, correct version is in
g3v1x.
feat(compiler): support ScopeAware for decorators

Even though decorators can safely inject scope (even after the proposed
context change), they might pick up ScopeAware from a base class shared
with components. Instead of manually calling super.scope = scope, we
support ScopeAware for decorators (similarly to Attach/DetachAware.)

There is no performance reduction on the tree benchmark.
chore(introspection): clean up workarounds for dart 1.4 and 1.5
fix(scope): fix a potential memory leak
perf(view): increase view instantiation speed 40%

1) Stop using futures when the value is already cached
2) Remove adding nodes to fake parent during view instantiation

Closes #1358
feat(dccd): add Support for ObservableList, ObservableMap & ChangeNotifier

Lower the target time to prevent a memory overflow. Benchmark added.

To use annotate your models with @Observable or use ObservableList or
ObservableMap.

Fixes #773
Closes #1156