Export functionality

I'm starting to work on making exporting happen. Not at all ready to merge - I'm just curious what you think.
So this is either on the edge, or over the edge, of wanting to be a top-level abstract class SketchType and several plain old concrete subclasses, PdeSketch, ExportedSketch, ScriptSketch, UnitTestSketch. You'd probably want to instantiate them with a SketchInfo, rather than passing the info to args() and getFooDir(), etc. I feel like they're a bit too rich for enums.

I'm sorry; this probably makes you feel bounced around, but as the thing takes shape, it does suggest different designs to me.