Bugfix for make_array_ctype in cudadrv

The structure of the array ctype created by make_array_ctype did
not match the structure of the array structure returned by
make_array - it was missing the nitems and itemsize fields. This
commit:

- Adds these fields into the struct created by make_array_type,
- moves make_array_ctype into numba.targets.arrayobj,
- moves logic from calc_array_sizeof into the CPU target,
- adds a unit test so that further issues of this kind can be
  caught. Moving the two functions above was necessary for this
  test to run on non-CUDA systems (and their new locations are
  arguably logical anyway).