Add c_init_code_apply().
Make GpuKernelBase use c_init_code_apply() and fix GpuEye to use the new API.
Allow string constants in kernel code to actually work.
c_code() for GpuCAReduce.

This is not pretty code, but it is working code.
Document c_init_code_apply().
Remove stray debugging print.
Return a proper version from c_cache_code_version().
Fix handling of shaped for 0-sized arrays.
Merge pull request #1646 from abergeron/c_red

c_code() for GpuCAReduce (in gpuarray)