fixed compilation with CUDA
moved device layer to core module
renamed device -> cuda
moved common gpu utility functionality to gpu_private.hpp