PLT: Cleaner plotting backend API, and unify Series and DataFrame accessors
- [X] xref #26747
- [ ] tests added / passed
- [X] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

The main changes are:

The API that backends need to implement is simply a function `plot(data, kind, **kwargs)`. After testing different approaches (abstract class previously mentioned and others), I think this is what makes things simpler in both ends pandas and the backends. For `hvplot` `hvPlot.__call__` is already what needs to be implemented, and this change will mainly require to delete a bit of code. For `pdvega` a bit more work will be needed, but this will help remove a significant amount of repetitive code.

Second thing, more in the pandas side, I unify the accessors of `Series` and `DataFrame`. There will be minor changes, like unified documentation (which I think it's great, but docstrings will have to be generic), and also `Series.plot.scatter` will exist (which now doesn't) but will generate an exception if called. Not a big deal I'd say, because now it's already possible to do `Series.plot(kind='scatter')`, so it'll just make both cases consistent. Same things apply to `hexbin`.

CC: @pandas-dev/pandas-core @philippjfr @jakevdp