RateLimiterMongo Docs/Logic Change Needed
I think a misunderstanding of the changes to `mongoose` in 6.* has caused a mismatch in the docs and code related to the `RateLimiterMongo`.

[In this comment](https://github.com/animir/node-rate-limiter-flexible/issues/161#issuecomment-1114230534), an update was made [to the docs](https://github.com/animir/node-rate-limiter-flexible/wiki/Mongo) that seems to indicate v6 mongoose's `connect` returns a Promise that resolves to a `Connection`. In actuality, it resolves to a `Mongoose` instance.

So, the `storeClient` that `RateLimiterMongo` receives is _supposed_ to be a Connection, but due to the API changes `mongoose` made, if you follow the example in this repo's docs, you'll end up passing a `Mongoose` instance instead of a `Connection`. And, because of this, downstream code in `getDriverVersion` was changed erroneously.

Here's the signature from the TypeScript types:
`function connect(uri: string, options?: ConnectOptions): Promise<Mongoose>;`

Thus, I think the docs _should_ read like so:

```
// For mongoose version <= 5
// (RETURNS A Connection)
mongoConn = mongoose.createConnection(`mongodb://127.0.0.1:27017/${dbName}`, mongoOpts);

// For mongoose version > 5
let mongoConn;
try {
  // (Resolves to A Mongoose object, NOT A Connection)
  mongooseInstance = await mongoose.connect('mongodb://127.0.0.1:27017/${dbName}');
  mongoConn = mongooseInstance.connection; // connection is a getter for the default connection and so I don't think can be destructured?
} catch (error) {
  handleError(error);
}

const opts = {
  storeClient: mongoConn,
  points: 10, // Number of points
  duration: 1, // Per second(s)
};
  
const rateLimiterMongo = new RateLimiterMongo(opts);
```

### The Root Cause / Historical Background
In this PR: https://github.com/animir/node-rate-limiter-flexible/pull/137, it seems this detail was overlooked/misunderstood and the code was modified to implicitly account for whether `RateLimiterMongo` is passed a `Mongoose` instance or a `Connection` instance due to the misleading docs.


Here's what the code looks like today:
```
function getDriverVersion(client) {
  try {
    // NOTE: If the docs actually showed you passing the Connection instance instead of the top-level Mongoose instance, this ternary would not be necessary
    const _client = client.client ? client.client : client;

    const { version } = _client.topology.s.options.metadata.driver;
    const _v = version.split('.').map(v => parseInt(v));

    return {
      major: _v[0],
      feature: _v[1],
      patch: _v[2],
    };
  } catch (err) {
    return { major: 0, feature: 0, patch: 0 };
  }
}
```

This is to say, that in [test/RateLimiterMongo.test.js](https://github.com/animir/node-rate-limiter-flexible/blob/4ac73289c4a88b0d39ba9dd0643d18cc378248cf/test/RateLimiterMongo.test.js), `mongoClient` and `mongoClientV4` should be the same shape (or more accurately, there should only be `mongoClient` as there should be no distinction between them), as the only reason they _appeared_ to have a different shape is because the understanding at the time suggested erroneously passing the resolved value of `mongoose.connect` instead of the _Connection_ referred to by `(await mongoose.connect(...)).connection` (evidence of this being the docs and [also this comment](https://github.com/animir/node-rate-limiter-flexible/issues/92#issuecomment-731551435)).

I think this issue arose because of a misunderstanding of types/Mongoose's API change rather than a bona-fide change to the Mongo Driver that mongoose wraps.
