TST: add test for `dtype` argument in `str.decode`
This PR adds a test case for `str.decode` and ensures it correctly infers the string datatype, when `dtype=None` and the option `future.infer_string` is used. This argument was introduced in PR https://github.com/pandas-dev/pandas/pull/60940 but has no test for None. This test adds coverage to the following line:


```py
    def decode(
        self, encoding, errors: str = "strict", dtype: str | DtypeObj | None = None
    ):
        ...
        if dtype is not None and not is_string_dtype(dtype):
            raise ValueError(f"dtype must be string or object, got {dtype=}")
        if dtype is None and get_option("future.infer_string"):
            dtype = "str" #✅ NOW COVERED
        # TODO: Add a similar _bytes interface.
        if encoding in _cpython_optimized_decoders:
            # CPython optimized implementation
            f = lambda x: x.decode(encoding, errors)
        ...
```

Note: Parts of this test have been automatically generated by a novel technique that we're currently developing as part of an academic research project aiming at improving test coverage. *To not waste developer time, two researchers manually checked the test before submitting it.* We appreciate the developers' time and any feedback is welcomed.
Thanks @hippowm 