implement hash for indices
would be nice as @jreback says to implement this since indices are supposed to be immutable. currently they try to hash the underlying `ndarray` which of course fails because it is mutable.

[succinct reasoning behind why you need immutability for hashables](http://stackoverflow.com/a/2671398/564538)

[python docs quote about using `^` (exclusive or) in the implementation](http://stackoverflow.com/a/2671402/564538)

but see [this answer](http://stackoverflow.com/questions/5386694/fast-way-to-hash-numpy-objects-for-caching) for a way to hash numpy arrays.
