chore(perf): getter function dirty comparison
feat(ng-model): implemented support for input[type=password]
fix(todo demo): Return the correct CSS class for TODO items in the demo.
chore(warnings): fix deprecation warnings in the test suite
fix(scope): remove GC pressure created by watchCollection getter
chore(docs): Correct README.md links

The StackOverflow link refers to none existing tag angulardart.

Change the link so it links to the existing angular.dart tag
chore(import): Make test/tools/* not depend on dart:html
fix(ng_model): do not save/restore selection unnecessarily

Closes #264
chore(cleanup): analyzer warnings
fix(expression_extractor): do not fail when source file doesn't exist
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