Form cache

This finally introduces a simplified version of George Boutsioukis' form assembly cache into Firedrake master.