Massive reorganization towards the CL monad.

Encourage the use of the CL monad for all operations. Several variations
on how to run OpenCL kernels have been removed for an overall
simplification of the package and a move to more strongly encourage the
code paths with greater type safety.