Update to new UFL class setup

New UFL classes must be decorated with ufl_type decorator.  However, for
classes not defined in UFL itself, this is not sufficient because they
now don't live in the correct "set of all classes" (which is built on
UFL import).  To get around this, build our own decorator that forwards
to ufl_type and updates the class sets accordingly.