MultiIndex.__iter__ on integer level with some missing keys casts to float
Edge case. Maybe not worth fixing.


```python
In [7]: idx = pd.MultiIndex.from_tuples([(1, 'a'), (np.nan, 'b')])

In [8]: list(idx)[0]
Out[8]: (1.0, 'a')

In [9]: idx[0]
Out[9]: (1, 'a')
```

`__iter__` should be equivalent to repeated getitems. This came up in my fix for https://github.com/pandas-dev/pandas/issues/24368. It involves iterating over the values in an Index and looking something up from a dict based on those keys. The float casting was causing KeyErrors.