chore: update di
refactor: use getters/setters as Traceur supports it now
refactor: remove outdated comments
refactor(precompile): refactor to use DI

With this testing gets a lot easier and
we can also have different DocumentLoaders for browser
vs. server side.