Many changes to memory types
Changed memory_types to be around the array dimensions, made assignment work with this
Some fixes to get CUDA assignment kernels running on the device
Removed CUDA includes from assignment_kernels.cpp
Added missing CUDA source file
Merge pull request #197 from izaid/memory_2

Memory types