[firedrake] Structured Adaptive Mesh Refinement, and KRANC - "UFL for finite difference"