String dtype: honor mode.string_storage option (and change default to None)
At the moment, the `pd.options.mode.string_storage` option defaults to `"python"`, and the `StringDtype()` constructor just ignores it when constructing the future default NaN-variant (i.e. the option is only used for creating the NA-variant), but uses the logic of "use `"pyarrow"` if installed otherwise `"python"`".

Given this option exists, I think it makes sense to let it always be honored, so that a user can actually control this through the option (and also for testing this makes things a bit easier to check the behaviour in case pyarrow is not installed without uninstalling/installing it constantly). 

In order to honor the option, I changed the default to `None` to mean this "use `"pyarrow"` if installed otherwise `"python"`" logic as default if constructing the NaN-variant. 
When constructing the NA-variant, for now `None` still gets translated to `"python"`. I think we should also change the default for this dtype to use pyarrow if installed, but that's a change only for 3.0, I think (not to backport for 2.3), so therefore didn't include that in this PR.

xref https://github.com/pandas-dev/pandas/issues/54792
Should I use `"auto"` instead of `None` for the default? (for some other options like the parquet engine we use `"auto"` for the default that depends on what is installed) > Should I use `"auto"` instead of `None` for the default? (for some other options like the parquet engine we use `"auto"` for the default that depends on what is installed)

Yea I prefer auto for string options like this Thanks @jorisvandenbossche 