ENH: tilde expansion for write functions, #11438
closes #11438 
Added calls to `_expand_user()` in multiple Formatter classes so that writer functions, such as `to_csv()` and `to_html()`, can perform tilde expansion on file paths beginning `~/`. This makes the writer functions consistent with the reader functions, such as `read_csv()`. I also changed the `__init__()` for `CSVFormatter` to conform to the pep8 width limit.

tests pls
 actually on 2nd thought.

I think you these should ONLY be used in `core/frame.py/DataFrame.to_csv and to_html`

I don't really like this here, as all of the other IO functions are localized in `pandas/io/*` but that's how it is for now.
 I had the same thought, but then I assumed that would cause problems for `Series.to_csv()`. But, having now checked the code, I see that they are the same function, with each Series being temporarily converted to a DataFrame.

Should I put the `_expand_user()` calls in frame.py?

Regarding the tests: let me start out by saying that I am oh-so-close to being out of my depth here. The current suite seems to run OK (various `DeprecationWarnings` and `RuntimeWarnings` notwithstanding), but I'm a bit unclear as to how (or whether) I should create a new test function. That function would need to write and read some temporary files, but it looks like it would be difficult, if not impossible, to use `testing.ensure_clean()` to generate expanded and non-expanded file paths.
 you might have a look at these: https://github.com/pydata/pandas/blob/master/pandas/io/tests/test_common.py

yeh this might be quite tricky to test 
 can you add a release note and we'll stick in 0.17.1
 @jreback looks like I might have caused some trouble editing the most recent version of the release notes file...
 merged via https://github.com/pydata/pandas/commit/ea758cd2467f3b9dbfe4aced1ce6666145c502c6

thanks!
