Improvements to module name generator, registered ES6 modules support and updated traceur

The following text has been copied from the following issue: https://github.com/aaronfrost/grunt-traceur/issues/45

---

Currently the module names have their first path separator in name replaced with an underscore (_), which complicates usage of relative path imports between modules with the `modules: "register"` option.

I propose removing the `path.sep -> _` replacement (applied only on the first one? why??) and adding options for specifying a module name prefix to strip and module name prefix to apply after stripping.

Additionally, the traceur version referenced in this project is old, and because of this the type assertions do not work as they should.

I have implemented all these changes in a fork available here: https://github.com/jurca/grunt-traceur
I would like to suggest pulling my changes to this repo.

With the options I added, it is still possible to simulate the old (current) behavior, keep the compatibility with commonjs and amd and add better compatibility with ES6 System module loader.
I though that would be the case, but `this.options()` seems to ignore deep structure. When I specified only the `addPrefix` option in task configuration, the `stripPrefix` was missing:

```
$ grunt --debug
Running "traceur:test" (traceur) task
[D] Task source: tasks\traceur.js
[D] using options: {"moduleNames":true,"moduleNaming":{"addPrefix":"test/tmp"},"
experimental":true,"modules":"commonjs","sourceMaps":true,"arrayComprehension":t
rue,"generatorComprehension":true}
Warning: Task "traceur:test" failed. Use --force to continue.

Aborted due to warnings.
```