TST: Refactor sql test classes.
- [ ] closes #xxxx (Replace xxxx with the GitHub issue number)
- [ ] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [X] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [ ] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [ ] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

After #49531 , the `sql.SQLDatabase` class only accepts SQLAlchemy Connections and not Engines.  As a result, any test class that would have passed an Engine had to be turned off in that PR, even though it was still needed to support the test classes which passed Connections.  The `_EngineToConnMixin` class bridged between the Engine test classes and the Connection test classes.

In this refactor, I remove the `_EngineToConnMixin` class and edit the setup and teardown methods so that the number of classes is reduced.  The number of tests in `test_sql.py` and their outcomes remain the same.  With sqlalchemy installed, 330 pass, 6 xfail, and 2 are skipped.  Without sqlalchemy, 83 pass, and 255 are skipped.  The tests seem to be slightly faster after the refactor.

This refactor will simplify the PR that I'm ultimately working towards (#48576).
Unfortunately, that would take a while for me to figure out. Thanks @cdcadman 