md5 checksum comparison for remote vs local

+ Fixes weak file comparison by comparing md5 checksums as a fallback
(to avoid expensive ops) after file size and lastModTime comparisons.
defer f.Close()