Support output of any function space

If both the coordinates and the output field are CGN, project to P1.
Otherwise project to P1dg.  Otherwise, project to P1 before output.  In
both cases, splat a warning to the screen telling the user which fields
are being projected.
Keep name of function when projecting in output
Output projection warning in RED
Only warn of projection once per file