DOC: add dynamically generated doc-strings for generic functions
closes #4717

```
In [2]: pd.DataFrame.reindex?
Type:       instancemethod
String Form:<unbound method DataFrame.reindex>
File:       /mnt/home/jreback/pandas/pandas/core/generic.py
Definition: pd.DataFrame.reindex(self, *args, **kwargs)
Docstring:
Conform DataFrame to new index with optional filling logic, placing
NA/NaN in locations having no value in the previous index. A new object
is produced unless the new index is equivalent to the current one and
copy=False

Parameters
----------
index : array-like, optional
    New labels / index to conform to. Preferably an Index object to
    avoid duplicating data
columns : array-like, optional
    New labels / index to conform to. Preferably an Index object to
    avoid duplicating data
method : {'backfill', 'bfill', 'pad', 'ffill', None}, default None
    Method to use for filling holes in reindexed DataFrame
    pad / ffill: propagate last valid observation forward to next valid
    backfill / bfill: use NEXT valid observation to fill gap
copy : boolean, default True
    Return a new object, even if the passed indexes are the same
level : int or name
    Broadcast across a level, matching Index values on the
    passed MultiIndex level
fill_value : scalar, default np.NaN
    Value to use for missing values. Defaults to NaN, but can be any
    "compatible" value
limit : int, default None
    Maximum size gap to forward or backward fill
takeable : boolean, default False
    treat the passed as positional values

Examples
--------
>>> df.reindex(index=[date1, date2, date3], columns=['A', 'B', 'C'])

Returns
-------
reindexed : DataFrame
```

easy enough
 @jreback Everything that gets defined on NDFrame is available to all subclasses, right? So why bother specifying the classes?
 its possible that a sub-has an implementtion already (but I guess I can just check that)
 maybe will use some of this, most is now done in #5034
 closing in favor of #5052
