move device layer functionality to separate module.
use opencv macro
automatically add CUDA to OpenCV module
set optional dependency for code to cudevice module