Putting report timing dates in the correct order
Re-added BulkDownloadService (refactored) with tests
Add a placeholder file with the .failed extension to make it obvious to users when a file has been missed from the archive. They can then get more details from the download report.
Extract out stream copying code
Change getter to property access
Refactor writeStreamToFile into addFileEntry