Cuda slicing gives SIGABRT
```Nim
import ../src/arraymancer, math


const
  a = @[1, 2, 3, 4, 5]
  b = @[1, 2, 3, 4, 5]

var
  vandermonde: seq[seq[int]]
  row: seq[int]

vandermonde = newSeq[seq[int]]()

for i, aa in a:
  row = newSeq[int]()
  vandermonde.add(row)
  for j, bb in b:
    vandermonde[i].add(aa^bb)

let t_van = vandermonde.toTensor().astype(float32).cuda()

# No error
echo t_van
let foo = t_van

# No error
echo "foo"
echo foo

# Error
echo t_van[0..2,1]
```

Reverting to an old commit before MetadataArray works
So this seems like another side-effect of BackwardsIndex.

Error is:
```Nim
terminate called after throwing an instance of 'NimException'
Traceback (most recent call last)
cuda_slicing.nim(36)     cuda_slicing
display_cuda.nim(23)     $
nimcuda.nim(49)          cpu
SIGABRT: Abnormal termination.
Error: execution of an external program failed: './bin/cuda_slicing '
```

and in the full test suite I actually get "InvalidValue"
```Nim
[Suite] CUDA CuBLAS backend (Basic Linear Algebra Subprograms)
  [OK] GEMM - General Matrix to Matrix Multiplication
  [OK] GEMM - Bounds checking
  [OK] GEMV - General Matrix to Vector Multiplication
  [OK] Scalar/dot product
  [OK] Matrix and Vector in-place addition
  [OK] Matrix and Vector in-place substraction
  [OK] Matrix and vector addition
  [OK] Matrix and vector substraction
    tensor/test_operators_blas_cuda.nim(225, 49): Check failed: (a[1 .. 2, 1 .. 2] - a_t[1 .. 2, 1 .. 2]).cpu == [[0.0, -2], [2.0, 0]].toTensor()
    (a[1 .. 2, 1 .. 2] - a_t[1 .. 2, 1 .. 2]).cpu was Tensor of shape [2, 2] of type "float64" on backend "Cpu"
|0.0    0.0|
|0.0    0.0|

    [[0.0, -2], [2.0, 0]].toTensor() was Tensor of shape [2, 2] of type "float64" on backend "Cpu"
|0.0    -2.0|
|2.0    0.0|

  [FAILED] Addition-Substraction - slices
  [OK] Multiplication/division by scalar

[Suite] CUDA: Testing indexing and slice syntax
Traceback (most recent call last)
test_accessors_slicer_cuda.nim(60) test_accessors_slicer_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Basic slicing - foo[1..2, 3]
Traceback (most recent call last)
test_accessors_slicer_cuda.nim(64) test_accessors_slicer_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Basic slicing - foo[1+1..4, 3-2..2]
Traceback (most recent call last)
test_accessors_slicer_cuda.nim(68) test_accessors_slicer_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Span slices - foo[_, 3]
Traceback (most recent call last)
test_accessors_slicer_cuda.nim(72) test_accessors_slicer_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Span slices - foo[1.._, 3]
Traceback (most recent call last)
test_accessors_slicer_cuda.nim(79) test_accessors_slicer_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Span slices - foo[_..3, 3]
Traceback (most recent call last)
test_accessors_slicer_cuda.nim(86) test_accessors_slicer_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Span slices - foo[_.._, 3]
Traceback (most recent call last)
test_accessors_slicer_cuda.nim(90) test_accessors_slicer_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Stepping - foo[1..3|2, 3]
Traceback (most recent call last)
test_accessors_slicer_cuda.nim(96) test_accessors_slicer_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Span stepping - foo[_.._|2, 3]
Traceback (most recent call last)
test_accessors_slicer_cuda.nim(100) test_accessors_slicer_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Span stepping - foo[_.._|+2, 3]
Traceback (most recent call last)
test_accessors_slicer_cuda.nim(104) test_accessors_slicer_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Span stepping - foo[1.._|1, 2..3]
Traceback (most recent call last)
test_accessors_slicer_cuda.nim(108) test_accessors_slicer_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Span stepping - foo[_..<4|2, 3]
Traceback (most recent call last)
test_accessors_slicer_cuda.nim(112) test_accessors_slicer_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Slicing until at n from the end - foo[0..^4, 3]
Traceback (most recent call last)
test_accessors_slicer_cuda.nim(118) test_accessors_slicer_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Span Slicing until at n from the end - foo[_..^2, 3]
Traceback (most recent call last)
test_accessors_slicer_cuda.nim(124) test_accessors_slicer_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Stepped Slicing until at n from the end - foo[1..^1|2, 3]
Traceback (most recent call last)
test_accessors_slicer_cuda.nim(130) test_accessors_slicer_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Slice from the end - foo[^1..0|-1, 3]
  [OK] Slice from the end - expect non-negative step error - foo[^1..0, 3]
Traceback (most recent call last)
test_accessors_slicer_cuda.nim(144) test_accessors_slicer_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Slice from the end - foo[^(2*2)..2*2, 3]
Traceback (most recent call last)
test_accessors_slicer_cuda.nim(148) test_accessors_slicer_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Slice from the end - foo[^3..^2, 3]

[Suite] CUDA: Shapeshifting
  [OK] Contiguous conversion
Traceback (most recent call last)
unittest.nim(514)        test_shapeshifting_cuda
nimcuda.nim(49)          cpu

    Unhandled exception: cudaErrorInvalidValue 11
  [FAILED] Unsafe reshape

[Suite] Shapeshifting - broadcasting and non linear algebra elementwise operations
  [OK] Tensor element-wise multiplication (Hadamard product) and division
  [OK] Implicit tensor-tensor broadcasting - basic operations .+, .-, .*, ./, .^
  [OK] Implicit tensor-tensor broadcasting - basic in-place operations .+=, .-=, .*=, ./=
  [OK] Implicit tensor-scalar broadcasting - basic operations .+, .-
  [OK] Implicit scalar-tensor broadcasting - basic operations .+, .-, ./
  [OK] Implicit tensor-scalar broadcasting - basic operations .+=, .-=
```