Make sure plotdata object always gets created.
Merge pull request #354 from ketch/better_controller_plotting

Make sure plotdata object always gets created.
Minor refactoring of I/O code (no change in functionality).
Fix I/O bug introduced in last commit.
Put options argument back in io/petsc.py read and write functions.
Status dictionary now refers to the whole simulation.

Also set +/- infinity values initially for cflmax, dtmax/min.
Merge pull request #358 from ketch/clean_up_io

Clean up I/O
Merge pull request #359 from ketch/fix_status

Status dictionary now refers to the whole simulation.
Add ability to use a temporary directory for test output

Uses the `tempfile` module to create a temporary directory for test
output, erasing it afterwards.  This patch changes the working directory
to the temporary directory to capture all output.  A new key word argument
`use_temp` controls whether this is done or not so it can still be
overridden for testing tests.