chore: Make field declarations explicit

This used to be valid code:

```
class Foo {
  constructor() {
    this.bar = ‘string’;
  }
}
```

This will now fail since ‘bar’ is not explicitly
defined as a field. We now have to write:

```
class Foo {
  bar:string; // << REQUIRED
  constructor() {
    this.bar = ‘string’;
  }
}
```
feat(Reflection): extract reflection capabilities into a separate module
feat(change_detection): add benchmarks
fix(reflection): fix a typo
fix(reflection): update pubspec.yaml to add a missing dependency on reflection
refactor(benchmarks): rename paths.js into register_system.js to match other benchmarks
fix(benchmarks): add the reflection module to benchmark config files
chore: use load-plugins to make gulpfile shorter
fix(ChangeDetector): fix issues with handling empty ranges
refactor(change_detection): make RecordRange responsible for removing iself
feat(viewPort): adds initial implementation of ViewPort.

ViewPort is the mechanism backing @Template directives. Those
directives can use the viewport to dynamically create, attach and
detach views.
benchmark(compiler): add a benchmark measuring view instantiation in AngularDart 1.0
feat(di): add OpaqueToken to DI

Using `new Object()` as a token causes cryptic errors. OpaqueToken class should be used instead.
fix(parser): handle empty strings
feat(parser): adds support for variable bindings
fix(examples): fix hello_world example (js)

Added missing path mapping for the new reflection module.
feat(Change Detector): Add support for collection deep watch