BUG: ensure Series.name is hashable, #12610 
- [x] closes #12610
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`

pandas >= 0.18.0 will no longer support compatibility with Python version 2.6 and since Python 2.6 we can use the abstract base class collections.Hashable.

we already have an pandas.core.common.is_hashable just use this
 but this needs to be checked more generally (higher up in the constructor)

prob need a few more tests 
 ok.
 no reason to close
just update push again
 actually I realize that the ref issue #9193 was not merged.

can you rebase/update this. Then add the `.name` attribute like was one there?

(this covers setting as well).

further for the actual tests

lets test both the constructor and setting with:
- a bunch of invalid things (you did some already: dict, np.array, list)
- a bunch of valid things (int, float, string, datetime, tuple)
 Okay, I will try to do this soon.
Additional test - not problem.

add `.name` atribute - you mean about:

```
@property
def name(self):
    return self._name

@name.setter
def name(self, value):
    if is_hashable(value):
```

P.S. Not a topic of this conversation: yesterday I add to wiki translation about Pandas on Ukrainian https://uk.wikipedia.org/wiki/Pandas -  think it's useful.
 Yes, if you take pretty that other PR and incorporate would be great. You can prob remove the explicit check in the constructor as it will use `.name` to set the name as well (where all of the checking should actually happen).

Thanks for the wiki update! cool!
 I think you might need to change: https://github.com/pydata/pandas/blob/master/pandas/core/series.py#L235 as well (and look and see if anywhere else is doing something similar)
 thanks @chinskiy keep em coming!
