Lightweight javascript IOC container