TYP: overload maybe_downcast_numeric and maybe_downcast_to_dtype
xref https://github.com/pandas-dev/pandas/issues/37715

Overload type definitions for these methods so that passing in an ndarray returns an ndarray.
This allows removing two more ignored mypy errors.
> Instead of using overloads, does it make sense to have an ArrayLikeT, i.e. a TypeVar bound to `np.ndarray | ExtensionArray`?
> 
> cc @simonjayhawkins @Dr-Irv

I think (but I'm not sure) that the times to use a `TypeVar` are when subclassing gets involved with respect to `self` .  I think the overload approach is correct here, but also agree with @twoertwein that with `ArrayLike` including `np.ndarray`, it's better to have one overload for `np.ndarray` and a different one for `ExtensionArray` Thanks for the comments!
I played around a bit with the typevar route, but I do not think it is sound in this case: both methods will return `np.ndarray` when passed `np.ndarray`, but could return either `ExtensionArray` or `np.ndarray` when passed ExtensionArray.
I agree non-overlapping overloads are cleaner here, I resolved that. Thank you @iasoon!