Implement Download, IDownload, DownloadNoSQLRepository

Now need to stitch this into the current system.  But it builds!