Make the signature of GpuArrayException compatible with "standard" exceptions since some software expects that.
Prevent crashes in case of catastrophic failure (which means a cuda kernel fucked up and cuda refuses to continue to even minimally work).
Deal with another corner-case for indexing.
Fix GpuArray_setarray so that it matches up the value starting with the last dimension, mirroring numpy.
Since GpuArray_setarray now does this correctly, avoid the copy in the python wrapper.
Make a copy when the matrix is not contiguous so that we can accept any input.