CLN: Remove/deprecate unused/misleading dtype functions
For "misleading" the leading case is `is_int_or_datetime_dtype`, which includes timedelta64 but excludes datetime64tz.

Several branches in `lib.infer_dtype` are unreachable, are removed.

`is_datetimetz` is redundant with `is_datetime64tz_dtype`, is deprecated, and internal uses of it are changed.

`is_period` is both redundant and misleading, is deprecated (no internal usages outside of tests)

`maybe_convert_string_to_object` and `maybe_convert_scalar` are never used outside of tests, removed

xref #22137

cc: @h-vetinari IIRC you've been looking at other functions in core.dtypes.cast with an eye towards cleanup or de-duplication.  Suggestions welcome.