Make `utils` a module
Refactor ftp_update_job

Parameterized global variables for easier use at the commandline.

Also changed the DB schema to always track filenames. The contents
of note files are no longer stored in the database but tracked by
the dowloads database file, similar to the treatment of NLM
archives.
Added test suite for ftp_update_job
Add UNIQUE constraint to download database schema

The NLM FTP server's directory listing assigns
unique file IDs to each file. While these have
been present in the downloads database schema,
their uniqueness was not reflected in the schema.

This should be another tool in identifying errors
were a file is downloaded twice.