TST: [ArrowStringArray] more parameterised testing - part 1
aim to reduce diff to address https://github.com/pandas-dev/pandas/pull/39908#discussion_r585573328, but good to do as follow-up to #35259 anyway.

This also includes a change to inference, which could be broken off if not wanted as part of a TST PR.

more tests to change once fixture in play and also some parameterisation to add for the str accessor testing (which could be a precursor with xfails for ArrowStringArray or combined with PR that adds the accessor.. will open a draft shortly for discussion)
only the tests that test inference seem to break. so we currently have ArrowStringArray not infered as string in master. maybe not used but I'll look in detail and test perf tomorrow.

This will slow down this PR and I want to get the fixture in play so that I can parameterise many other tests that test for only `dtype="string"` so I will remove the inference change and pararmeterisation of the inference test in this PR and do that as a separate PR. (after this PR with the fixture in conftest is merged) on master

```
>>> pd.__version__
'1.3.0.dev0+1180.gdd697e1cca'
>>> 
>>> from pandas.core.arrays.string_arrow import ArrowStringDtype
>>> 
>>> arr = ArrowStringDtype.construct_array_type()._from_sequence(["B", pd.NA, "A"])
>>> 
>>> arr
<ArrowStringArray>
['B', <NA>, 'A']
Length: 3, dtype: arrow_string
>>> 
>>> pd._libs.lib.infer_dtype(arr)
'unknown-array'
>>> ``` OK have reverted the inference change... so can open a PR on the str accessor and parameterise existing str accessor tests for that, but nbd if this is not ready as can just dup the fixture and resolve conflicts if necessary. Failures are the matplotlib ones