String dtype: fix isin() values handling for python storage
This PR adds a `StringArray.isin()` implementation (`ArrowStringArray` already has a custom `isin()`), so we can add custom processing of the passed `values` set compared to the base class implementation.

See also the discussion at https://github.com/pandas-dev/pandas/pull/58451#discussion_r1700793204 about the expected behaviour.

xref https://github.com/pandas-dev/pandas/issues/54792
Thanks @jorisvandenbossche 