BUG: Index.insert may not coerced to correct dtype
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry
### on current master

```
# NG, must be float dtype
pd.Index([1]).insert(1, 1.0)
# Int64Index([1, 1], dtype='int64')

# NG, must be object dtype
pd.DatetimeIndex(['2011-01-01']).insert(1, 1)
# TypeError: cannot insert DatetimeIndex with incompatible label
```
## after the PR

```
pd.Index([1]).insert(1, 1.0)
# Float64Index([1.0, 1.0], dtype='float64')

pd.DatetimeIndex(['2011-01-01']).insert(1, 1)
# Index([2011-01-01 00:00:00, 1], dtype='object')
```

## [Current coverage](https://codecov.io/gh/pandas-dev/pandas/pull/14535?src=pr) is 85.25% (diff: 94.23%)

> Merging [#14535](https://codecov.io/gh/pandas-dev/pandas/pull/14535?src=pr) into [master](https://codecov.io/gh/pandas-dev/pandas/branch/master?src=pr) will increase coverage by **0.04%**

``` diff
@@             master     #14535   diff @@
==========================================
  Files           143        140     -3   
  Lines         50787      50666   -121   
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
- Hits          43273      43194    -79   
+ Misses         7514       7472    -42   
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last update [f26b049...6c0ab48](https://codecov.io/gh/pandas-dev/pandas/compare/f26b049786624ed983f2718687c23e3f1adbb670...6c0ab489f8605fd130a2c41b813d1e6218e7a82d?src=pr)
 I would keep this for 0.20, as it are some slight changes without a pressing bug fix (unless you have an example case?)

Further, are we sure that we want to upcast the Int64Index to floats, even when the value set is coerceable to a integer? 
Using another (series and indexing, not index and `insert`), but similar case:

```
In [145]: s = pd.Series([2,2,3,4])

In [146]: s[2] = 5.0

In [147]: s
Out[147]: 
0    2
1    2
2    5
3    4
dtype: int64
```

Here the integer dtype is preserved.
 can you update? @sinhrks status? can you rebase / update issue now in #16277 