Add more pytest idiom to io.excel testing
master tracker for follow-ups to #26755 and related PRs

- [ ] use pytest.importorskip/not use the class structure https://github.com/pandas-dev/pandas/pull/26755#pullrequestreview-247416090 

- [ ]  location of fixtures https://github.com/pandas-dev/pandas/pull/26755#pullrequestreview-247404136

- [ ] imports and try/except https://github.com/pandas-dev/pandas/pull/26764#pullrequestreview-247587125 

- [ ] xlwt dependency/create a write_ext fixture https://github.com/pandas-dev/pandas/pull/26764#pullrequestreview-247589748

- [x] ~~use of safe_import in pytest.param https://github.com/pandas-dev/pandas/pull/26735#issuecomment-500156276~~ #27139

- [ ] parametrisation of write tests https://github.com/pandas-dev/pandas/pull/26740#pullrequestreview-247380174

- [ ] consider patch filename extension https://github.com/pandas-dev/pandas/pull/26740#pullrequestreview-247382411

- [ ] align the engine / ext usage in the Writer classes https://github.com/pandas-dev/pandas/pull/26662#pullrequestreview-246112315

- [ ] get rid of the None engine tests and just have a separate test that ensures how that gets bound to a particular engine https://github.com/pandas-dev/pandas/pull/26662#discussion_r291258182 (#28749)

- [x] ~~engine and ext injected into tests https://github.com/pandas-dev/pandas/pull/26662#discussion_r291260131~~ #28753

- [ ] add some doc-strings https://github.com/pandas-dev/pandas/pull/26579#pullrequestreview-245987920

- [ ] test_bad_engine_raises shouldn't parametrised https://github.com/pandas-dev/pandas/pull/26543#issuecomment-497126487 (#28749)

- [x] ~~Eliminate _WriterBase class~~ #28753

cc @WillAyd 