BUG: multi-index to_native_types is not passing thru parameters
closes #7791
xref #6797

couple of comments. pls also add a whatsnew note (bug fix section)
 Hum, `na_rep` has its own difficulty:

For a plain index:

```
In [79]: pd.DataFrame({'a': np.NaN, 'b':[2,3]}).set_index('a').index
Out[79]: Float64Index([nan, nan], dtype='float64', name=u'a')
```

and that's cool, but for a multi-index:

```
In [80]: pd.DataFrame({'a': np.NaN, 'b':[2,3]}).set_index(['a','b']).index
Out[80]: 
MultiIndex(levels=[[], [2, 3]],
           labels=[[-1, -1], [0, 1]],
           names=[u'a', u'b'])
```

so there are no `nan` values stored, and thus:

```
In [81]: pd.DataFrame({'a': np.NaN, 'b':[2,3]}).set_index(['a','b']).index.levels[0]
Out[81]: Float64Index([], dtype='float64', name=u'a')
```
 You are setting everything to the index, which collapses the frame.

```
In [10]: pd.DataFrame({'a': np.NaN, 'b':[2,3], 'c' : [5,6]}).set_index(['a','b'])      
Out[10]: 
       c
a   b   
NaN 2  5
    3  6
```

having nans in an index is quite odd and only semi-supported, meaning some edge cases exist.
 Even when there is a third column `'c'` that stays outside the index, we still get an empty `Float64Index`:

```
In [5]: pd.DataFrame({'a': np.NaN, 'b':[2,3], 'c' : [5,6]}).set_index(['a','b']).index
Out[5]: 
MultiIndex(levels=[[], [2, 3]],
           labels=[[-1, -1], [0, 1]],
           names=[u'a', u'b'])

In [6]: pd.DataFrame({'a': np.NaN, 'b':[2,3], 'c' : [5,6]}).set_index('a').index
Out[6]: Float64Index([nan, nan], dtype='float64', name=u'a')
```

If this is an "edge case", I'm pushing what I have done so far:
- what's new
- a short explanation for the test for `date_format`
- add `names=self.names` where it should be
- test if `quoting` is also passed to the multi-indexes

What I have NOT done:
- test if `decimal`, `float_format` (issue #11553), and `na_rep` are passed
 ok, this looks good. pls squash and ping when green.
 All done
 merged via https://github.com/pydata/pandas/commit/9cbe8b966d4b58f271625dd3415534304f32a5cd

thanks!
