Break up cuda_launcher.hpp and stick the files in a subdirectory
Introduce parameter_ptr
Don't use thrust::detail::temporary_storage