Implement Index.__array_ufunc__
It'd be similar to `Series.__array_ufunc__`, (extract array, apply ufunc, box in index with name) with the exception that

1. No alignment when operating between multiple indexes
2. We'd need to decide whether Index or Series defers when calling ufuncs on inputs of mixed index and series. Check what binops does.