share more code between OpenCL kernels and C++ by moving kernel data structures/code to the 'shared' folders