Inversion Of Control (IoC) container for JavaScript