feat(view): add onChange implementation to view.
feat(ElementInjector): throw when encounter a cyclic dependency
feat(test_lib): change test_lib.dart to structurally compare objects