feat(di): add metadata to Key
feat(ElementInjector): implement ElementInjector
feat(ElementInjector): add support for "special" objects
feat(View): implement ProtoView.instantiate
fix(super): `super()` now means call the proto of the current function.

See https://github.com/google/traceur-
compiler/commit/6732e5eddf203ae02bcfb8faea837590bf32c061
feat(ElementInjector): change ElementInjector to accept bindings or types
perf(ElementInjector): add a benchmark measuring the instantiation of element injectors without using reflection
chore(pubspec): fix a typo
feat(ChangeDetector): Add support for chained properties
chore(gulp): cleanup gulp file

- remove duplicated path & readline deps,
- order dep alphabetically.
chore(travis): cleanup travis.yml
fix(facade/lang): use strict equality for performance
feat(facade/lang): add math and regexp support
feat(facade/collection): add StringMap support
feat(selector): initial version of the selector
docs(readme): add installation of pub as a pre-requisite

Closes #113
docs(readme): add missing prerequsite [karma-cli]

Closes #102
chore: adds Windows support for build

Closes #104
feat(view): add onChange implementation to view.
feat(ElementInjector): throw when encounter a cyclic dependency