Simplified MySQL version checking.

Django used to check the version of MySQL before handling the first
request, which required:
- opening a connection
- closing it, to avoid holding it idle until the first request.

This code isn't necessary any longer since Django dropped support for
some versions of MySQL, and other database backends don't implement a
similar dance. For consistency and maintenability, remove it.

Reverts 4423757c0c50afbe2470434778c8d5e5b4a70925.

Closes #18135.
Fixed #15119 -- Stopped pinging the MySQL server.
Removed duplicate caching of mysql_version.

The manual caching in self.server_version and the cached_property
decorator are redundant.
Implemented persistent database connections.
Added required methods in BaseDatabaseWrapper.