Support program source strings in the CL monad.

Cache compiled program source like we cache programs loaded from disk.