feat(change-detection): Initial implementation of new change-detection algorithm.

The classes are not yet hooked up to angular scopes yet, so so far this is a stand alone code.
chore(analyzer): clean up analyzer warnings
chore(env.sh): Use DART_SDK env var when available
refactor(selector): remove dead code
chore(style): code style cleanup
chore(docs): update CONTRIBUTING.md from Angular.JS
Adding some missing @MirrorsUsed targets.

In updating the angular.dart.tutorial (https://github.com/angular/angular.dart.tutorial), these Angular targets appeared to be missing.
chore(deps): Depend on shadow_dom so we can use the polyfill

We need this to run on Firefox, for example.