Init initializes the global MongoDB client.
It reads MongoDB configuration from config.App.MongoConfig.
If MongoDB is not enabled, it returns nil.
The function is thread-safe and ensures the client is initialized only once.
New returns a new MongoDB client instance with given configuration.
It's the caller's responsibility to close the client,
caller should always call Close() when it's no longer needed.