Allow injecting typedef'd dependencies

Closes #40

Commits details:
- Add a unit test,
- Code style, might be personal prefs but `generator.dart` was hard to grasp - can revert if needed,
- Add support in dynamic injectors,
- Add support in `generatot.dart`

@pavelgj the unit tests fail while testing `main.dart.js` with

```
run tests in node
unittest-suite-wait-for-done
PASS: Module bind should throw if incorrect combination of parameters passed (1)
...
PASS: DynamicInjector should inject a typedef

/home/victor/dart/di.dart/out/main.dart.js:6440
throw z}},"$0","qZ",0,0,602,"_asyncRunCallback"],
      ^
Unsupported operation: 'Uri.base' is not supported
    at dart.b (/home/victor/dart/di.dart/out/main.dart.js:1961:3)
    ...
```

I can see the same kind of issue when removing the following section for the test script
```
# TODO(blois) dart2js compilation is not picking up transformed files, so
# run dart2js manually. dartbug.com/17198
dart2js -c build/test/auto_injector_test.dart -o build/test/auto_injector_test.dart.js;
```

So I believe this is due to a dartjs bug. Any further idea ?