Firedrake's kernels use PyOP2 AST

The expression_kernel function is now represented with a PyOP2 Abstract Syntax Tree rather than as a string of C code. 

This has dependencies on the pull requests in FFC (branch pyop2-ir-itspace) and in PyOP2 (branch pyop2-ir-opt-itspace)