Delete JumpListIconsOld and update revised links in every update

This CL includes the following changes:

1) In crrev.com/2752063002 landed recently, when JumpListIcons is not
empty or doesn't exist, we are not trying to delete JumpListIconsOld.
This is not optimal, as deleting JumpListIconsOld is now independent of
the folder status of JumpListIcons.

2) When the JumpListIcons folder is not empty after the deletion of its
content, currently we skip creating the new icons as well as updating
the revised links. However, updating the links shouldn't be skipped as
it doesn't involve file IO. This CL fixes it.

3) This CL logs more detailed directory information for jumplist folders
to UMA. In addition to logging if the folder is empty or not, it now
also logs if the folder exists or not.

4) Use base::IsDirectoryEmpty to replace PathIsDirectoryEmpty Windows
API. Thus we can remove the inclusion of Shlwapi.h in a few files.

5) Reduce the limit of files to delete from 100 to 60. One reason is
that setting the limit to more than twice of the normal amount is more
than enough. Another reason is that we are now trying to delete
JumpListIconsOld folder in every jumplist update.

BUG=40407, 179576

Review-Url: https://codereview.chromium.org/2778513002
Cr-Commit-Position: refs/heads/master@{#460023}
5 files changed