Move JumplistIcon to JumplistIconOld only via renaming, not copy-n-delete

In jumplist related IO operations, one step is to move folder
JumplistIcon to JumplistIconOld using base::Move(). The method tries to
rename the folder and copy-n-delete if renaming fails. For users with
these folders corrupted and bloated already, copy-n-delete is very
expensive and may lead those icon files to be never deleted when e.g.,
copy succeeds yet delete fails.

As folders JumplistIcon and JumplistIconOld are in the same disk volume,
renaming should be working fine and enough for users whose jumplists are
working normally. So this change won't affect those Chrome users at all.
Local tests have been done on my machine and proved it.

This CL also updates the logic when deletion of folder JumplistIcon
fails. Previous logic is that if base::DeleteFile() function call fails,
updating jumplist is skipped. This can be potentially wrong if deletion
of the content in JumplistIcon succeeds but deletion of folder alone
fails. In this case, we should still continue with jumplist update,
which is fixed in this CL. UMA histogram is also updated to record this
change.

UMA metrics will be kept being monitored for this change.

BUG=40407, 179576

Review-Url: https://codereview.chromium.org/2732313002
Cr-Commit-Position: refs/heads/master@{#456505}
2 files changed