Support output of any function space

project all functions to DG1 before output.  This simplifies the code
significantly, since we now have fewer cases to support.  Additionally,
output on periodic meshes now does the right thing.