CI: Using docstring validator from numpydoc
- [X] xref #28822
- [x] tests added / passed
- [X] passes `black pandas`
- [X] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

We moved our script to numpydoc, and it already had some improvements there. The script does like 80% of our validation, so what I'm doing here is to call numpydoc validation, and then call our custom validation (things that for different reasons weren't moved to numpydoc).
> For the codes that are left over do you see another home for them, like code checks or any of the other validators?

The assumption here is that we want to be able to have a script that reports all the errors for a specific docstring. The one we used in the sprints, which we'll be using again when fixing one docstring at a time.

Otherwise, we could do what you say. And the validation for pep8 errors in the examples, which is the most tricky one, could just be deleted, since we can use pytest for that.

One thing to consider is that the numpydoc script is expected to be wrapped if used in the CI. It can be used directly for a single object, but we need to implement the functionality to get which objects we want to validate, which I think it's more than half of the new script. @WillAyd can you remove the requested changes flag if you don't have further comments. Thanks! Merging this today if there are no further comments. 