ENH: plot method accessors
Fixes #9124

This PR adds plotting sub-methods like `df.plot.scatter()` as an alternative to using `df.plot(kind='scatter')`.

I've added meaningful function signatures and documentation for a few of these methods, but I would greatly appreciate help to fill in the rest -- this is a lot of documentation to assemble/reconstruct! The entire point of this PR, of course, is to have better introspection and docstrings.

Todo list:
- [x] Basic docstrings/signatures
  - [x] `area`
  - [x] `line`
  - [x] `bar`
  - [x] `barh`
  - [x] `box`
  - [x] `hexbin`
  - [x] `hist`
  - [x] `kde`/`density`
  - [x] `pie`
  - [x] `scatter`
- [x] Write tests for the methods
- [x] Fix groupby plots (tests currently failing)
- [x] Plotting docs
- [x] API docs
- [x] Release notes
