BUG: .rename* not treating Series as mapping
Closes https://github.com/pydata/pandas/issues/12623

I added com.is_dict_like in https://github.com/pydata/pandas/pull/11980
and failed to use it for the `rename` method. Using that now and did
some refactoring while I was in there. Added more tests for rename.

I might remove or rename `core._is_scalar_or_list_like`. It doesn't seem like a well-defined or clear check...
 @TomAugspurger btw, make sure you are rebased on current master. `dateutil=2.5.0` flowed thru and broke some tests and I just fixed in (maybe  2 hrs ago)
 Ok, the tests for the different possible arguments are [here](https://github.com/pydata/pandas/pull/12626/files#diff-f042fb8fba5656b3854ad92563ed6480R93). I simplified the stuff with `is_scalar_or_mapping` to just do the check in the code. Should be clearer now, but a bit less DRY.
 thanks @TomAugspurger 
