AreaPlot:  add support for step drawstyle
- [ ] closes #29451
- [ ] tests added / passed
- [ ] passes `black pandas`
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

Hello @nick-schultz! 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-11-07 23:51:14 UTC How are you calling this from a user perspective? Just a call to `.plot(kind="step")`? 

If you can add a test case would help frame the review - typically the most important part of any PR > How are you calling this from a user perspective? Just a call to `.plot(kind="step")`?
> 
> If you can add a test case would help frame the review - typically the most important part of any PR

I have some more discussion in my original issue #29451 .    I think the issue stems from the fact that matplotlib has two different APIs for specifying the draw style -  fill_between uses `steps`,  where the regular line plot uses `drawstyle`. It currently would be `.plot(kind='area', step='mid')`  or `.plot.area(step='mid')` .  I'm not sure if this is the ideal user interface,  any suggestions are welcomed.

I will look into adding a test. Can users accomplish this behavior by passing in the correct keyword arguments, which are passed through to mpl? I don't believe so.

From what I can tell, [`AreaPlot._plot` ](https://github.com/pandas-dev/pandas/blob/6dbd2b1142a1fa1be33f031d319ee2ef7a49faef/pandas/plotting/_matplotlib/core.py#L1241) has two drawing calls, and each of them have different keywords for controlling the stepping behavior: 

1. drawing lines:
    -  `lines = MPLPlot._plot(ax, x, y_values, style=style, **line_kwds)`
    -   Keywords: **drawstyle**: {`default`, `steps`, `steps-pre`, `steps-mid`, `steps-post`}

2. filling area:
    -  `rect = ax.fill_between(xdata, start, y_values, **kwds)`
    - Keywords: **step**: {`pre`, `post`, and `mid`}


submitting the wrong keyword throws an assert, so the following does not work:

```
.plot.area(step='mid', drawstyle="steps-mid" )
```

as the first call to `MPLPlot._plot` will complain about seeing the `step` keyword
 @nick-schultz is this still active? If so can you add a test case? closing as stale, if you want to continue pls ping. > How are you calling this from a user perspective? Just a call to `.plot(kind="step")`?

df.plot.area(drawstyle='steps-post')

