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.
Merge pull request #35 from drusk/nocands

Write empty candidates file if no sources accepted