ExternalProject: Reattempt download when verification fails.

When downloading an URL with ExternalProject, reattempt the download three
times if the file hash verification fails.

The re-attempt is limited to non-local URL's.  The same download CMake script
is re-used after removing any file that resulted from the previous download
attempt.  Up to three re-attempts are performed.
file DOWNLOAD: Add test for bad hash.
file DOWNLOAD: Test non-zero return status.
file DOWNLOAD: Display the curl result status when a hash mismatch occurs.
Merge topic 'robust-ep-download-verify' into next

a432b93b file DOWNLOAD: Display the curl result status when a hash mismatch occurs.
1cb9ef81 file DOWNLOAD: Test non-zero return status.
f73f0fb3 file DOWNLOAD: Add test for bad hash.
b5e2265f ExternalProject: Reattempt download when verification fails.