Converting mock's Logger to use ListBase

It was using noSuchMethod and mirrors, both of which have the potential to bloat dart2js code size. This change may not have any real-world impact given the number of other places which also hit mirrors and NSM, but it seems good to remove the gratuitous use of these APIs.
fix(expression_extractor): do not fail when source file doesn't exist
Removing package:js dependency

package:js uses noSuchMethod and mirrors to get some syntax niceties but incurs a large dart2js code-size overhead as a result. Since it's fairly straight-forward to use dart:js instead and this does not aid end-users, dart:js should be used rather than package:js.

This is dependent on the change for removing the package:js dependency from karma.dart.
Revert "Removing package:js dependency"

This reverts commit acc61d46270f58def3f5d15dc09feb5bd1f1da31.
Revert "Converting mock's Logger to use ListBase"

This reverts commit 37ef00384cb3c7baec2d3d6f309dec79f8965c14.
fix(ng-repeat): ng-repeat support for Iterable

Closes #292
chore(style): fix coding style to use more dart idioms
chore(mock): Converting mock's Logger to use ListBase

It was using noSuchMethod and mirrors, both of which have the potential to bloat dart2js code size. This change may not have any real-world impact given the number of other places which also hit mirrors and NSM, but it seems good to remove the gratuitous use of these APIs.
feat(cookies): Basic Cookies service/wrapper over BrowserCookies
feat(NgComponent): Support multiple css files
feat(mocks): provide support for child scope parameters in compile
perf(bracket): Optimize calling methods on objects.

Optimize the closures used for calling methods on objects by getting rid
of an intermediate "field access" that loads the function from the object.
This allows us to use InstanceMirror.invoke more directly.

Performance
===========
The performance implications of this change look good. On the native Dart VM,
calling methods through the reflective path becomes 4.5x faster. When compiled
to JavaScript, the difference is even bigger and it is 6.7x faster.

Dart VM:
  new: o.f() => g: 18,885,385.384 ops/sec  r: 2,252,149.057 ops/sec   h: 2,233,514.96 ops/sec   i: 32,662,458.941 ops/sec
  old: o.f() => g: 18,118,349.692 ops/sec  r:   496,119.238 ops/sec   h: 6,234,893.68 ops/sec   i: 31,472,943.499 ops/sec

Dart2js:
  new: o.f() => g:  2,618,328.337 ops/sec  r: 1,234,723.632 ops/sec   h: 1,234,745.10 ops/sec   i:  7,507,441.131 ops/sec
  old: o.f() => g:  2,427,133.253 ops/sec  r:   184,727.903 ops/sec   h:   500,226.70 ops/sec   i:  7,461,638.467 ops/sec
perf(digest): Use linked list for watchers

Performance

This makes it a lot faster to add and remove watchers and it doesn't seem to slow down the digest loop.

dart2js (new: linked watchers)

noop: => 153,147,355,556 ops/sec (0 us) stdev(415.89679)
empty scope $digest(): => 567,981 ops/sec (2 us) stdev(0.01002)
adding/removing 4000 watchers: => 406 ops/sec (2,461 us) stdev(0)
4000 dummy watchers on scope: => 7,680 ops/sec (130 us) stdev(0.0002)
3000 watchers on scope: => 201 ops/sec (4,965 us) stdev(0.00001)

dart2js (old: non-linked watchers)

noop: => 153,222,244,444 ops/sec (0 us) stdev(150.92445)
empty scope $digest(): => 537,580 ops/sec (2 us) stdev(0.01016)
adding/removing 4000 watchers: => 1 ops/sec (1,327,937 us) stdev(0)
4000 dummy watchers on scope: => 4,091 ops/sec (244 us) stdev(0.00015)
3000 watchers on scope: => 177 ops/sec (5,638 us) stdev(0.00001)
fix(scope): log firing expressions in the watchLog

Closes #258

Conflicts:
	lib/core/scope.dart
fix(expression_extractor): support for inline templates

Closes #186
chore(npm): switch to karma-dart 0.2.6
chore(changelog): updated changelog for 0.9.3
chore(release): update pubspec.yaml for v0.9.3
Merge remote-tracking branch 'upstream/master'