Implement createContainer() with:
register(token, factory, { singleton }) — register a provider. - singleton: true: factory called once; subsequent resolves return the cached value.
- singleton: false (default): factory called every time resolve is called.
resolve(token) — instantiate and return the value.solve registers tokens backed by an auto-incrementing counter factory and
returns an array of resolved values. Singleton tokens return the same
counter value; transient tokens return a new one each time.
Sample tests