Use FTPFileParams as a namedtuple more often

Previously, FTPFileParams was converted to a dictionary midway through
processing downloads. This wasn't necessary and complicated the
creation of tests for the download_nlm_data module.

Now, FTPFileParams is a namedtuple throughout download_nlm_data, though
it is still converted (using vars() and not namedtuple._asdict()) in
nlm_downloads_db.

This commit also includes relevant changes to the tests for
download_nlm_data and nlm_downloads_db.
Add test for record_downloads

Added a tests for record_downloads, the function that commits newly
downloaded files to the downloads database.

Since md5 files must have their contents recorded in the database,
this commit creates fake hash files in the newly-added
test_nlm_data_import.generate_ftp_file_params function. This change
required setting up a temporary directory, which is used throughout
the TestNLMDatabase testsuite.

To resolve issues regarding the names of the dictionary keys
used in populating the database, this commit includes cosmetic changes
to nlm_downloads_db, as well.