API: DataFrame.to_csv formatting parameters for float indexes
Fix issue #11553 

Two things:

1) I've created a `Float64Index._format_native_types` method which is a copy-paste of  `FloatBlock.to_native_types`. I would have preferred to call the latter directly, but I'm not sure what the `placement` parameter of the `FloatBlock` constructor means. I guess I doesn't really matters, since I could put whatever value and it should work (I think), and my hesitation a bit unfounded, but I don't know if it would be really a clean solution. Maybe someone can think of a more elegant way?

2) Since a `Float64Index` containing only NaNs collapses when part of a multi-index, its NaNs values would not be converted using `na_rep`, so I had to hack a solution. I put a comment in the relevant part. I'm not quite convinced myself of the elegance of the solution, though.

What do you think?

And I've corrected the fact that the `decimal` option was not taken into account for `0.0`, by replacing the use of `%g` formatting with a call to `str`
 @jreback all set
 ok, looks pretty good. I think we can take this opportunity to re-factor a bit as I have noted above.
 @nbonnotte if you can update / refactor as above would be great
 I will, just had not the time yet. If you'd like this to be done quickly, because of the schedule for the 0.18.0 release, let me know.
 no, just pinging :)
 lmk when you can update
 @jreback I just pushed the changes. Let me know if other changes are needed.

Happy Holidays!
 lgtm. some very minor formatting changes. in general like to have blank lines between different sub-tests and to format code nicely.

ping when pushed and green.
 If you and Travis agree, that should be it.

I have added some comments as you suggested, to make the code clearer. But to be honest I'm not quite sure about how some bits of the code fit with the rest, for instance how and where the `quoting` parameter is handled. I mostly moved stuff around, and it's difficult to explain things in comments when one does not understand what is going on. I hope the comments I wrote are OK, though.

Also, I suppose `FloatArrayFormatter` could be refactorized a bit, because right now it looks like more a potpourri, a mixture of different bits of code that are related but do not have much code in common. But I'm not sure it is worth the effort.
 @nbonnotte code looks great. just see if we have some tests for `quoting` if not, pls add them.

the explanations are fine. Just want to have a note instead of a mass of code to explain a bit what is happening.

as far as refactoring, you got what I was looking for (integration between `Index` and data formatting). if you see additional thinks, don't hesitate with another PR!

ping when pushed / green (or if tests ok, lmk)
 Yeah, the `quoting` parameter is used in `pandas/tests/test_format.py`, at least in `test_to_csv_quotechar()`, `test_to_csv_doublequote()`, and `test_to_csv_escapechar()`.
 thanks!
