ENH: Better rename/set_names handling for Index

* MultiIndex now responds correctly to ``rename`` (synonym for
  ``set_names``)
* ``set_names`` checks that input is list like.
* Cleaner error message for immutable ops.
* Added in previously missing tests for MultiIndex immutable metadata.
* Altered ``is_list_like`` to check for binary_types as well.
Merge pull request #4718 from jtratner/multiindex-rename

ENH: Better rename/set_names handling for Index