REF: refactor ArrowExtensionArray._reduce
Adds a `ArrowExtensionArray._reduce_pyarrow` method that returns a pyarrow scalar and makes `ArrowExtensionArray._reduce` get its pyarrow scalar from that and converts it there to a python scalar.

There are situations where we want to know the type of the value returned from pyarrow reductions (e.g. #52788)  and this allows us to get the pyarrow type.

This changes no functionality.
Thanks @topper-123 