[ENH] Add to_markdown method
- [ ] closes #11052 
- [ ] tests added / passed
- [ ] passes `black pandas`
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

Hello @MarcoGorelli! Thanks for updating this PR. We checked the lines you've touched for [PEP 8](https://www.python.org/dev/peps/pep-0008) issues, and found:











There are currently no PEP 8 issues detected in this Pull Request. Cheers! :beers: 

##### Comment last updated at 2019-12-27 16:16:15 UTC should Series support this too?  does `tabulate` have something that could be used for a `read_markdown` to round-trip? > should Series support this too? does `tabulate` have something that could be used for a `read_markdown` to round-trip?

Sure, I've added it to Series.

I haven't found anything in the `tabulate` source code that can be easily used for `read_markdown`, but it would be a nice enhancement to work on.

Thank you @TomAugspurger and @jbrockmendel for your reviews! > I haven't found anything in the `tabulate` source code that can be easily used for `read_markdown`, but it would be a nice enhancement to work on.

Maybe CSV code with `|` separator could work. One just has to ignore the header separation line. Maybe empty columns will be added because of the outer border separators and should be removed in post-processing automatically. @jreback I've mentioned tabulate and added a link to its docs in `install.rst`, then rebased

@datapythonista Thanks! I've read through the thread you linked to. There seems to still be some disagreement among the core team about the issue though, so I'm not sure what to do and am in no position to pick sides > Thanks @MarcoGorelli, this is quite useful.
> 
> But personally I think this is a great opportunity to implement this as a third party module, and start to work on making it easier to extend pandas with I/O adapters like this (see #26804)

@datapythonista that's orthogonal, and to be honest *this* IS almost entirely a third-party module.

It is *much* *much* easier to simply refactor later than to re-factor while adding something new. thanks @MarcoGorelli very nice!