Generalized KernelArgsCPS to MonadIO.

This still isn't great as the instances for arrow types do not play
nicely with the monadic context.