WIP/POC: Allow (N, 1) and (1,N) EAs
Discussed on the mailing list last week, cc @TomAugspurger @jreback @jorisvandenbossche 

The central claim: if we allow EAs to take on shapes (N, 1) and (1, N), then we can get some major simplifications in core.internals.

For the proof of concept I've made the Datetimelike arrays accept these shapes and updated `DatetimeTZBlock` to see what simplifications are available.  The `_wrap_data` implementation would also work for `Categorical` and `PandasArray`.

Three categories of simplifications are not in here yet and you'll have to use your imaginations
- some can only be made once all EAs allow these shapes, e.g. not having to pass `ndim` arg to Block constructors
- some would require additional tweaks on the EA subclasses, e.g. making `shift`, `__iter__`, or `take` aware of 2Dness
- some I just haven't got to yet.  core.internals is rough.

Added bonus: this fleshes out bugs (see #26864)


