BUG: Fix `pd.to_numeric` to have consistent behavior for date-like arguments
- [ ] closes #43280
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [ ] whatsnew entry

`pd.to_numeric` was having an inconsistent behavior when using in datelike objects and was returning wrong result when using with `pd.NaT`


**In master:**
```python
>>> import pandas as pd
>>> from datetime import datetime
>>> from functools import partial
>>> pd.to_numeric(datetime(2021, 8, 22), errors="coerce")
nan
>>> pd.to_numeric(pd.Series(datetime(2021, 8, 22)), errors="coerce")
0    1629590400000000000
dtype: int64
>>> pd.Series([datetime(2021, 8, 22)]).apply(partial(pd.to_numeric), errors="coerce")
0   NaN
dtype: float64
>>>
>>> pd.to_numeric(pd.NaT, errors="coerce")
nan
>>> pd.to_numeric(pd.Series(pd.NaT), errors="coerce")
0   -9223372036854775808
dtype: int64
>>> pd.Series(pd.NaT).apply(partial(pd.to_numeric), errors="coerce")
0   NaN
dtype: float64

```

**In this PR:**
```python
>>> import pandas as pd
>>> from datetime import datetime
>>> from functools import partial
>>> pd.to_numeric(datetime(2021, 8, 22), errors="coerce")
nan
>>> pd.to_numeric(pd.Series(datetime(2021, 8, 22)), errors="coerce")
0   NaN
dtype: float64
>>> pd.Series([datetime(2021, 8, 22)]).apply(partial(pd.to_numeric), errors="coerce")
0   NaN
dtype: float64
>>>
>>> pd.to_numeric(pd.NaT, errors="coerce")
nan
>>> pd.to_numeric(pd.Series(pd.NaT), errors="coerce")
0   NaN
dtype: float64
>>> pd.Series(pd.NaT).apply(partial(pd.to_numeric), errors="coerce")
0   NaN
dtype: float64
```

Please let me know if this approach makes sense so I can add the tests.