Remove KernelCached base class

Convert AST to C code in the Kernel constructor, which has the side
benefit of saving the cost of AST preprocessing every time before
computing the cache key.
Stash AST on Kernel object
Merge pull request #321 from OP2/kernel-cache-ast

Convert AST to code in constructor.