BUG: fix common.is_hashable for NumPy scalars on Python 3
Fixes #9276

This now relies entirely on the result of calling `hash` on the argument.

Note: I had to change the test for old style classes on Python 2 -- these are
now considered hashable by `is_hashable`, because they don't fail `hash`.

CC @aevri
