FileDownloader: calculate MD5 while reading input, not writing output

This is a preparatory step for making the file write operation optional
in a later step.
FileDownloader: make write-to-file optional (e.g. MD5 check only)

The constructor now accepts a null value for 'to' and sets the new
boolean member 'doWriteToFile' accordingly. The latter is checked later
during download.
New tool class DownloadChecker checks downloads and verifies their MD5

The class has a 'main' method which can be called by advanced users who
know it.