added redis integration

Can now use Redis key-value store to prevent downloading files which
have already been downloaded. This functionality is optional, and the
old method of simply checking for the file in the local directory
structure is still possible (but not recommended, as it will result in
duplicate downloads in many scenarios).