Test running cuda kernel
Add device_array_t, just copied from array_t
Introduce abstract_array_t
device_array_t inherits abstract_array_t
Rename abstract_array_t -> base_array_t
Separate base_array_t._ptr as _address and _origin
Inherits move constructor, assign in base_array_t
Eliminate duplication of array_t and device_array_t by introducing base_array_t