Add support for the Conforming Crouzeix-Raviart Element for Stokes

The conforming Crouzeix-Raviart element P_2^+-P_1^\text{disc} is a stable mixed pairing for discretising the Stokes and associated problems, see e.g.

Our plan is to support generation of forms and operators for the P_2^+-P_1^\text{disc} pair. Initially we will only consider the case of triangles in 2D. Here the P_2^+ part for the velocity component employs continuous quadratic Lagrange elements extended by a cubic bubble function.

  1. implement a P2PlusBubbleSpace in HOG to support P_2^+
  2. add support for generating forms and operators using P_2^+ elements; especially diffusion operators
  3. add support for DG1 elements to allow using P_1^\text{disc}
  4. implement form generation for divergence and gradient parts using the P_2^+-P_1^\text{disc} pair
  5. implement operator generation for divergence and gradient parts using the P_2^+-P_1^\text{disc} pair

Operator generation for the mixed pair will require more work as it necessitates extending the concept of an elementwise operator to DG, see #19. Note, however, that our case here is simpler, as we do only need volume integrals and do not have flux coupling or anything like that.

Edited by Marcus Mohr