feat: make modules argument optional

Closes #5
chore: switch to Gulp, update the readme
chore: push 1.9.0 to di@v2
test: use the es6 polyfill

V8's implementation of Map is very incomplete - no way to iterate over all entries.
feat: force new instances by annotation
chore: add repo, homepage into package.json
feat: update Traceur
chore: set up Travis, using Pipe
fix: fix the commonjs build
chore: push v2.0.0-pre to npm

Closes #7
test: refactor the unit tests a bit
feat: meaningful exception when error happens during instantiation
feat: print function/class tokens nicely
fix: factory function can return a primitive or falsy value
refactor: use a helper fn for isFunction
test: refactor a bit