TST/REF: fixturize so as to avoid 500+ skips
Re-order the fixturizatin of engine and read_ext so as to yield only valid combinations, avoiding the need to pytest.skip the invalid combinations.  This cuts out 500+ pytest.skips, which is about a third of the skips I see when i test with `--not-slow`.

The idea is that by cutting down on skips we can keep a closer eye on them, and things like [this](https://github.com/pandas-dev/pandas/pull/30441#discussion_r361222254) wont fall through the cracks quite as easily. 