Refactors the settings, and changes the API for the downloader class
Adds a global test suite configuration file
Extracts the TEST_ROOT constant from the test suite and uses the new config file
Extracts the settings class tests, and renamed the old test file and downloader class. New files using the test config file
Adds files that should have been part of the last commit
Removes legacy methods - it is unnecessary - and refactors the name of another
Refactors the existing methods to separate concerns. I think there is a case for extracting a new class too
Extracts the MissingFileError class into the Utils package
Extracts the configuration settings class into a new package
Moves the example files into the fixtures directory, and removes the TEST_ROOT constant