ENH: Allow safe access to `.book` in ExcelWriter
Towards #45572 

- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit) for how to run them

The plan to expose both `sheets` and `book` as public attributes of `ExcelWriter`. We need to make sure that `sheets` is correct if the user modifies the state via accessing `book`.

This accesses a protected attribute for xlwt; I looked at the xlwt code and there is no public access to determine the sheets. The xlwt repository is read-only, we only support the most recent version, and xlwt will be removed in pandas 2.0. So I think this is okay.
Failures look related? Thanks @phofl - wasn't using a context manager for ExcelWriter Failure is unrelated.

```
FAILED pandas/tests/computation/test_eval.py::TestEval::test_unary_in_array[python-python]
FAILED pandas/tests/computation/test_eval.py::TestEval::test_unary_in_array[python-pandas]
FAILED pandas/tests/computation/test_eval.py::TestOperations::test_column_in[python-python]
FAILED pandas/tests/computation/test_eval.py::TestOperations::test_column_in[python-pandas]
``` You did not add a test for xlsxwriter, was this on purpose? > You did not add a test for xlsxwriter, was this on purpose?

Yes, but I realize now that was a mistake. I removed the `sheets` attribute from the writer for xlsxwriter because it was never used (hence, no tests). But that creates an inconsistency between the writers, so I've added it back on. @jreback  - added docstrings. I'd like to hold off updating the docs until the API is ready to be public.