feat(elementBinder): introduce element binder.

It is a plain-old-data class to seperate the protoInjector from the
textNodes and elementBinding data.
feat(parser): adds basic expressions to the parser.

Mostly copy pasta from angular.dart.

Remove GetterFactory in favor for ClosureMap (which has basically the same
implementation).
chore: source maps for Karma/Gulp

For Karma, the source mapa are inlined inside each source file.
For `build/*` output, separate `*.map` file is created.

This changes the API of `tools/transpiler/index.js`. I believe this API
is only used in `gulp-traceur.js` and `karma-traceur-preprocessor.js`.
Instead of returning the transpiled string, `compile()` returns a result
object such as:
```js
{
  js: ‘transpiled code’,
  sourceMap: null || {}
}
```

Closes #20
fix(example): make it work
chore(karma): add karma.conf.js symlink

So that I can run `karma start` instead of `karma start karma-js.conf.js`.