Add __index__ to array_api and update __int__, __bool__, and __float__
Add __index__ to array_api and update __int__, __bool__, and __float__

The spec specifies that they should only work on arrays with corresponding
dtypes. __index__ is new in the spec since the initial PR, and works
identically to np.array.__index__.

cupy/cupy,cupy/cupy,cupy/cupy,cupy/cupy