Add a VCD file argument to formats

This allows me to write a VCD and the cooresponding circuit that
should produce it seperately.
Have "format" close its input files

This is probably cleanest: when you destruct a format that means that
it ends up closing the files you gave it.  This is a little funky
because you didn't actually give it the file paths to open, but I
think it's OK.