Move CUDA specific functions from asm_compiler to cuda_asm_compiler target
Move CUDA specific functions from asm_compiler to cuda_asm_compiler target

This avoids:
- a forward declaration of `GpuContext`
- the `:asm_compiler_header` header only target

The moved code is unchanged - I just move it from one
file to another and fix up includes and dependencies.

Note that this is adding just another `#ifdef` to the redzone allocator code. I will clean this up in a subsequent change.
