Rebuild files if target directory is corrupt

If manual modifications have been made or if cargo/rustc died for some sort of
error, then we don't consider a target as being fresh. If any of the files
output by a target don't end up existing in the target directory (even if the
fingerprint says they do), then we consider the target not fresh.

cc #986
auto merge of #1021 : alexcrichton/cargo/issue-986, r=brson

If manual modifications have been made or if cargo/rustc died for some sort of
error, then we don't consider a target as being fresh. If any of the files
output by a target don't end up existing in the target directory (even if the
fingerprint says they do), then we consider the target not fresh.

cc #986
Merge remote-tracking branch 'upstream/master'