fix(selector): the required attribute should properly work with ng-required
feat(lexer): Faster lexer rewrite

Add a new lexer based on a scanner that produces tokens one at a time.
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

Conflicts:
	lib/core/parser/backend.dart
fix(introspection): Search our shadowRoot as well
feat(ng-pluralize): Implement the ng-pluralize directive
refactor(ng-pluralize): Make propertie names clearer
Removing package:js dependency from Angular

Converting all uses over to dart:js. In general dart:js gives a bit better performance and removes a dependency on mirrors.
chore(docs): spelling and grammar
chore(docs): fix documentation typos.
refactor(all): use dart idioms
feat(NodeAttrs): Implement forEach to iterate over attributes
refactor(core_dom/directive): Remove duplicated code
perf(NodeAttrs): Remove one unnecessary call to snakecase

The `_observers` map is now indexed by camelCase names, saving 1 call to
`snakeCase`. `this[attributeName]` was also resulting in calling
`snakecase` on an already snake-name (which is not an error).
feat(NodeAttrs): implement the keys getter and containsKey()
feat(travis): add travis support
chore(travis): adde documentation travis.md
test(parser): Added a test case for private field access
docs(travis): Add a bit of colour to the travis instructions
chore(demos): Delete the obsolete 'books' demo
feat(compiler): Throw a useful error message on a missing NgComponenet selector