Code generation assumes all dats are mixed if some are

The mixed poisson problem with strong boundaries in firedrake mixed-space-bcs branch fails because the generated code is incorrect.  The `local_facet_dat` is *not* mixed but the generated code thinks it is.  As a result, the wrong kernel args are passed to the second invocation of the kernel.