[HttpFoundation] MongoDbSessionHandler supports auto expiry and auto index creation

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #11508
| License       | MIT
| Doc PR        | no

ToDo

 * [x] Fix Tests

Looking for feedback on this early PR.


This adds a config option that disables the PHP GC method call from doing anything,
It also means that the write method sets up the auto expiring index.


Ref: #11508
I sorted through the git history and this goes back to @Baachi's original unit tests in https://github.com/symfony/symfony/commit/40df3bf86f4223132158ca1dfec60c0916ad7107, which were later refactored in https://github.com/symfony/symfony/commit/f2d8a8a85b8950d7677ed94e04caf2ae63bb4d48.

Looking at it now, I have no idea why `gc()` is called with `-1` below, but I think the syntax above (`time() - -1`) is just for readability, as it makes it clear that the criteria subtracts the `$maxlifetime` argument from `time()`. I actually don't see any documentation in PHP about negative session timeouts (0 means limited to the browser session). It might be best just to update all of the tests to use a positive value for the `gc()` calls, and then we'll have `time() - <positive number>` above.