enable/disable commit-changes button
clarify progress message
Track per-download recovery attempts

Both tools.cx.db.Database and tools.cx.db.DatabaseInsert need to
access the local sqlite db.  However, they are running in separate
threads, so only one of them should be allowed to write to the db.
This means that we can't safely update the retry field of the
cookie_table while we are doing data recovery.  The
solution to this problem should be to consolidate
all of the tools.cx.db.Database* items (except for DatabaseInit) so
that all database work is done in the same thread.  The present
workaround is for CXController to keep track (in memory) of how many
times it's attempted a given section of flash and abandon it when the
limit is exceeded.
Rough draft of serial download application