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).
There are some existing test files for arrays but they didn't really seem to be checking anything similar to `make_array` - however, the place where it would be most likely to fit in would be `test_create_array.py` - would that be preferred? (I don't normally create a new test file for every bugfix, I just create them when I fail to find any similar tests :-) ).