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.
* ``Index.rename`` handles only converts to list if not already
  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.