BUG: Better handle larger numbers in to_numeric
Fun edge case bug fixes for `to_numeric`:

* Warn about lossiness when passing really large numbers that exceed `(u)int64` ranges.

* Coerce negative numbers to float when requested instead of crashing and returning `object`.

* Consistently parse numbers as integers / floats, even if we know that the resulting container has to be float. This is to ensure consistent error behavior when inputs numbers are too large.

Closes #24910.
