REGR: Index.union preserve numerical index for range/float and int/float combinations
Recent change in master:

```
In [11]: index = pd.RangeIndex(0, 10)

In [12]: index.union(pd.Index([0.5, 1.5]))
Out[12]: Index([0.0, 0.5, 1.0, 1.5, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0], dtype='object')
```

the dtype should be float.

cc @topper-123