Introducing dependency injection

My dependency injector I used in last project. I made some changes to it for better fit to cleverstack. As you can notice now there is no need to manually list dependencies in routes.js. That was inconvenient.

This injector is based on code from angular.js but it has one important advantage:
Injector is fully asynchronous. Services can initialize asynchronously and depend on asynchronously initializing services. This is why code is somewhat complex.

It comes with test suite.