ENH/DOC: Cleanup docstrings on NDFrame

Resolves much of #4717. Basically cleans up docstrings in a few places
plus, for the few functions that need them, uses a shared dict of
function definitions to share them. This has the side-benefit of letting
the function docstrings reside right next to the functions themselves,
maintaining readability.