Index space dtypes

`IndexSpace` represent labels and hence should have an integer `dtype` property. This also allows casting between integer types (e.g. from `int64` to `int32`). The default `dtype` is `int64`, which is also the default for NumPy.