Light Dependency Injection - built in ES5 based on Vojta Jina's DI v2 talk