ENH: EA._from_scalars
- [x] closes #33254 
- [x] closes #31108 (someone double-check me on this)

xref #33254 _from_sequence is generally not very strict.  This implements _from_scalars for a few EAs as a POC to get rid of an ugly kluge in `maybe_cast_pointwise_result`.  The changed behavior in test_resample_categorical_data_with_timedeltaindex looks like a clear improvement to me.

cc @jorisvandenbossche 

Things to work out before this leaves the "WIP" zone:
- [x] implement/document it on the base class, none of this "hasattr" shenanigans
- [x] decide whether dtype should be required.  Not specifying dtype has different implications for different EA subclasses, which is not ideal.  I think part of the motivation is to be able to preserve pyarrow/masked "flavors" when doing pointwise ops.
- [x] see if this fixes #49163, #52411 <b>update</b> Nope!
This pull request is stale because it has been open for thirty days with no activity. Please [update](https://pandas.pydata.org/pandas-docs/stable/development/contributing.html#updating-your-pull-request) and respond to this comment if you're still interested in working on this. @jbrockmendel , I have done some investigation based on your PR. I have found one issue:
For pyarrow type, preserve_dtype would be True in agg_series. Then maybe_cast_pointwise_result should be called.
The maybe_cast_pointwise_result function have one default parameter, same_type to be True. So the result would be cast to the original pyarrow types. It caused issue 53030. I have changed the same_type parameter to be False by default. The issue 53030 is fixed, but some pytest test cases failed. 
So in what situation should cast the result to original pyarrow types? And in what situation should cast the result to the corresponding pyarrow types?
 @jorisvandenbossche i think the last round of comments and OP issues have been addressed.  any other thoughts? If there are no further comments, I'm planning to merge this at the end of the week.