ENH: Allow read_csv(engine=pyarrow) to return ArrowExtensionArray-backed columns
- [ ] [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).
- [ ] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

The `engine="pyarrow"` was added in 1.4 and is considered "experimental", so I would like opinions whether it's okay to 

1. Just change the return type to ArrowExtensionArray-backed data in 1.5
2. Raise a warning in 1.5 that the return type will change to ArrowExtensionArray-backed in 2.0. I can't immediately think of a nice way to "opt into" this behavior in 1.5 besides calling `astype()` after the `read_csv` call.

I would be -1 on anything but opt-in. IMO, the behavior should be consistent across all three engines. I know the read_csv is rather bloated with its many keywords, but I still think it would be worthwhile to add a new one, or co-opt ``use_nullable_dtypes``(the proposed new keyword for the nullable EA types), especially given that Arrow EAs are still kinda new/experimental.

In general, I think there is still some discussion to be resolved around when the CSV parser should return extension array types vs numpy types(see #42973 for example). That's a good point and wasn't aware of expanding `use_nullable_dtypes`. Yeah agreed I think it would be better to leverage that keyword in a fashion like `use_nullable_dtypes="pandas"|"pyarrow"|None`. Closing this then.