Add a .relabel method; deprecate .rename and .rename_axis for relabeling
This was suggested by @MaximilianR [here](https://github.com/pandas-dev/pandas/issues/12392#issuecomment-186308548), but @jorisvandenbossche (rightly) [proposed](https://github.com/pandas-dev/pandas/issues/12392#issuecomment-186451899) to discuss separately.

This is related to the discussion on ``.rename`` and ``.rename_axis``'s signatures (see above), but touches a different issue. Currently, these two functions are confusing not just because they do the same thing, but also because they (each) do two _different_ things (renaming axis/object name, and relabeling), and because they do not do the most obvious thing (relabeling by passing a list-like - since a list-like is assumed to refer to multiple names for a ``MultiIndex``' levels).

My proposal is the following:
- add a new method ``.relabel``, which changes the _content_ of the axis, as in
``` python
df.relabel(['l1', 'l2', 'l3']) # changes df.index labels - assuming df.index is flat
df.relabel([['l1a', 'l1b', 'l1c'], [...], [...]]) # changes df.index labels - assuming df.index has 3 levels
df.relabel(a_dict) # again, changes the index labels, analogously to what df.rename(a_dict) currently does
```
- deprecate the use of ``.rename`` and ``.rename_index`` for doing the same operation, that is when the ``index`` or ``mapper`` argument (respectively) is a callable or dict-like; keep them (or, even better, keep one and deprecate the other) for changing only index names

Whether the signature of ``.relabel`` should follow the ``axis=`` or ``index=``, ``column=`` standard will depend from the outcome of the discussion about ``rename`` and ``rename_index`` (#12392).