ENH: Series.str.join for ArrowDtype(pa.string())
- [x] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [x] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [x] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [x] Added an entry in the latest `doc/source/whatsnew/v2.1.0.rst` file if fixing a bug or adding a new feature.

Adds support for `Series.str.join` with `ArrowDtype(pa.string())`:

```
In [1]: from pandas import Series, ArrowDtype

In [2]: import pyarrow as pa

In [3]: ser = Series(["abc", "123", None], dtype=ArrowDtype(pa.string()))

In [4]: ser.str.join("-")
Out[4]: 
0    a-b-c
1    1-2-3
2     <NA>
dtype: string[pyarrow]
```


This is already supported by `string[python]` and `string[pyarrow]` as well as python strings in general:

```
In [1]: "-".join("abc")
Out[1]: 'a-b-c'
```

This is work towards being able to add `ArrowDtype(pa.string())` to the string benchmarks.
Nice find thanks @lukemanley 