PERF: to_numeric for numeric dtypes
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry

Skip `object` conversion if input is numeric already.

```
-  146.41ms    26.45μs      0.00  miscellaneous.to_numeric.time_from_float
```

lgtm. ping on green.
 ```
In [1]: pd.date_range('20130101',periods=3,tz='US/Eastern')
Out[1]: DatetimeIndex(['2013-01-01 00:00:00-05:00', '2013-01-02 00:00:00-05:00', '2013-01-03 00:00:00-05:00'], dtype='datetime64[ns, US/Eastern]', freq='D')

In [2]: pd.to_numeric(pd.date_range('20130101',periods=3,tz='US/Eastern'))
TypeError: 'Index' does not have the buffer interface

In [3]: pd.to_numeric(pd.date_range('20130101',periods=3,tz='US/Eastern').to_series())
Out[3]: 
2013-01-01 00:00:00-05:00    1357016400000000000
2013-01-02 00:00:00-05:00    1357102800000000000
2013-01-03 00:00:00-05:00    1357189200000000000
Freq: D, dtype: int64
```
 @sinhrks this looked fine. can you just rebase  (I think this was sent when codecov was misbehaving).
 we can push this as well, lmk.
 ## [Current coverage](https://codecov.io/gh/pydata/pandas/pull/12777?src=pr) is **83.91%**

> Merging [#12777](https://codecov.io/gh/pydata/pandas/pull/12777?src=pr) into [master](https://codecov.io/gh/pydata/pandas/branch/master?src=pr) will increase coverage by **+<.01%**

``` diff
@@             master     #12777   diff @@
==========================================
  Files           136        136          
  Lines         49918      49931    +13   
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
+ Hits          41885      41899    +14   
+ Misses         8033       8032     -1   
  Partials          0          0          
```
1. File `...das/tseries/index.py` (not in diff) was modified. [more](https://codecov.io/gh/pydata/pandas/commit/2d2b45a5db7325603eec9c219df99788fae12c46/changes?src=pr#70616E6461732F747365726965732F696E6465782E7079) 
   - Misses `-1` 
   - Partials `0` 
   - Hits `+1`

> Powered by [Codecov](https://codecov.io?src=pr). Last updated by 2d2b45a
 @jreback Current master has following issues. I've updated the PR to included the fixes.

#### 1. `to_numeric(Index)` returns `np.ndarray`, not `Index`

To be compat with `to_datetime`, it must be `Index`.

```
pd.to_numeric(pd.Index([1, 2, 3]))
# array([1, 2, 3])
```

#### 2. datetime-likes are not actually supported

Based on your examples, it should be `asi8` repr.

```
pd.to_numeric(pd.date_range('2011-01-01', freq='M', periods=3))
# TypeError: 'Index' does not have the buffer interface

pd.to_numeric(pd.Series(pd.date_range('2011-01-01', freq='M', periods=3)))
# TypeError: Invalid object type
```
 Added scalar impl and tests (`test_scalar`). Now green except for `codecov/changes`.
 thanks!
