Jacobian improvements

This changes the Jacobian snippets on product cells to use the Jacobian at the midpoint (needed for not-totally-crap results on unstructured quads, say)
The basis functions are
`(1-x-y)(1-z)`, `(1-x-y)z`, `x(1-z)`, `xz`, `y(1-z)`, `yz`.

Each row of the Jacobian is the derivative of these with respect to `x`, `y` and `z` in turn.  The derivative with respect to `x` is `-(1-z)`, `-z`, `1-z`, `z`, `0`, `0`.  Evaluating this at the midpoint `(1/3, 1/3, 1/2)` gives `-1/2`, `-1/2`, `1/2`, `1/2`, `0` `0`.  The derivative with respect to `y` is similar, giving `-1/2`, `-1/2`, `0`, `0`, `1/2`, `1/2`.  The derivative with respect to `z` is `-(1-x-y)`, `1-x-y`, `-x`, `x`, `-y`, `y`.  Evaluating this at the midpoint gives `-1/3`, `1/3`, `-1/3`, `1/3`, `-1/3`, `1/3`.  These are the coefficients used.