Improve error handling in CUDA target

This pull request turns on error handling always (instead of just when the gpu_debug target feature is set), and it removes the CHECK_* macros (and return from within the macro). The timing information that is lost by this change is coming back soon.