OpenCL: Improved type safety in vector kernels.

Uses of sizeof(T) for local memory sizes is dangerous with integers, hence promoting type to OpenCL types via metafunction.