Remake database connection if not connected
Improve error handling and logging

Set the process method to have an 'update' mode to rerun reporting
as requested but skip on errors.  Save errors to files in per-obsid
error directories and in the processing status database.
Open file handle closer to its use
Set update() to use process()

Process will handle/skip bad obsids and log, and now has an update
mode.
Make a stub page for obsids with processing errors

These changes also eliminate use of the separate obsid.ERR
directory for tracking and use a file called 'proc_err' in the
output directory as the simplest indication of processing failure.
Add a mode to retry failures