Handle `__cuda_array_interface__` in `asnumpy`
Handle `__cuda_array_interface__` in `asnumpy`

If the object given to `asnumpy` supports `__cuda_array_interface__`,
then coerce it to a CuPy `ndarray` and use `.get(...)` to transfer it
back to host (as would be done with a CuPy `ndarray`).

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