Optimize CUDA implementation

I optimized the CUDA implementation to more or less match the performance of the tHogbomCleanHemi version, so that the main benchmark includes a fast CUDA implementation.  CUB is included as a submodule, and used for fast CUDA parallel reduction.

tHogbomCleanCuda Before optimizations: 
    Time 4.12 (s)
    Time per cycle 4.12 (ms)
    Cleaning rate  242.718 (iterations per second)

tHogbomCleanCuda After optimizations:
    Time 1.34 (s)
    Time per cycle 1.34 (ms)
    Cleaning rate  746.269 (iterations per second)

Speedup: 3.07x

This is on an NVIDIA K40 GPU.

See the commits for descriptions of the changes.  Let me know if you have any questions!