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`.
chore: fix modules/build.dart/pubspec

This was failing on Travis because the `pub install` would run before
copying of `pubspec.yml` happened. In fact, I don’t understand how this
worked at all because `gulp.dest` seems to be not forwarding files and
so anything after `gulp.dest` does not get called at all.

Here is the failing Travis build:
https://travis-ci.org/angular/angular/builds/40005692

This changes `modules/build.dart/pubspec` task to use `gulp-changed`
instead of a custom implementation and use a wrapper around `gulp.dest`
to forward files.
chore(travis): fix the build

I don’t know what the issue really is. There is some weird race condition,
where the task copies the file (`pubspec.yml`) and then start `pub get`
which reads that file and the file is not there or is empty.

I have no idea why moving this task into a separate process fixes the
issue but I don’t wanna waste more time on it.
chore(gulp-traceur): better error reporting

Use original filename when printing errors (instead of the output).
feat(Change Detection): Implement collection changes
feat(Change Detection): Implement map changes
feat(transpiler): allow @CONST annotation on class

Closes #148
feat(Parser): add support for assignments
feat(Parser): add support for arrays and maps
feat(Parser): improve error handling
feat(Parser): add support for method invocations
refactor(Parser): cleanup
refactor(Parser): cleanup
refactor(ElementInjector): use `index` instead of the `elementInjector` field to instantiate element injectors
refactor(ProtoElementInjector): change `instantiate` to take positional args