Lightweight JavaScript IoC container modeled after Ninject and Angular