Added dialog class for rejecting a source.
Added method to MPC writer for writing rejected sources.
Implemented ProcessRealsController writing handling rejection by
writing rejection line in MPC file.  Added methods to ApplicationView
for showing and closing the reject source dialog.
Give focus to comment in rejection dialog.
Added keyboard shortcut for blinking backwards through observations
of a source.
Extracted 2 classes from AstromWriter: a BulkAstromWriter for writing
out whole AstromData structures at a time, and a 
StreamingAstromWriter for writing out one source at a time.

Changed ProcessCandidatesModel to use the new 
StreamingAstromWriter.  As a result, if no sources are accepted in an
.cands.astrom file, the corresponding .reals.astrom file is empty instead 
of having headers.
Added persistence module which can load which files have been 
processed from a standard log file format.
The AstromWorkload class now know what task it has been created for,
and handles locating the relevant files in the working directory.  Utility
for listing filenames with suffix moved to tasks module, with convenience
function for getting files for a specific task.
WIP: AstromWorkload accepts ProgressRecord on construction.
Filter out the files already processed for a specific task when constructing
the workload.
App now loads progress from log file.
Added ability for ProcessRecord object to write progress in addition to 
reading it.
Added file processed event which gets fired by the model when the 
sources corresponding to an astrom file are finished being processed.
ProgressRecord's flush method now immediately writes the data to
the file.  It will now also clear the file contents before re-writing them, to
avoid duplications.
The model now records progress when it completes processing a file in
the AstromWorkload.
ProcessRealsModel now opens MPC filehandle in append mode so that
when loading saved state you don't lose your old results.
Renamed test case module for image viewer for consistency.
Extracted common functionality of image viewer's left click states to 
a superclass.
Renamed the base state in the image viewer to BaseInteractionState.
Refactored AdjustColormapState to use this base class as well.
User can now left click with dragging to center the image viewer circle
on their click.

Implemented by adding image viewer state to handle recentering, and
having the other left-click states extend it.