ExternalProject: do not download file if it already exists

If file already exists and has expected hash do not run ``file(DOWNLOAD ...)``
command. This may be useful when downloading to custom directory, in this case
optimization can be performed even when creating super-build from scratch
and there is no stamps yet.