ENH: Allow `ArrowDtype(pa.string())` to be compatable with str methods
This implementation is somewhat similar but kept separate to the methods in `ArrowStringArray` because I tailored `ArrowExtensionArray` to always return `ArrowExtensionArray` (most obvious in `_str_map`) as opposed to falling back to pandas masked arrays.


Additionally:

* `any_string_method` pytest fixture to `pandas/conftest.py` so it can be used by `extensions/test_arrow.py`
* Removed some imports into `pandas/core/strings/__init__.py` as it was causing a circular dependency when adding this to `ArrowExtensionArray`

Closing in favor of https://github.com/pandas-dev/pandas/pull/51207