drive: Allow dragging a file downloaded to Drive from download shelf

Add drive::WriteOnCacheFileAndReply.
Add drive::DownloadHandler::GetCacheFilePath and remember the cache file path as user data.
Use GetCacheFilePath() to build ui::OSExchangeData in DragDownloadItem()

BUG=227305
TEST=Manually, start composing a mail on mail.google.com, download a file from the web to Google Drive, drag the downloaded file from the download shelf (a bar at the bottom of the browser window) to the mail being composed, verify that the file is attached without errors.

Review URL: https://codereview.chromium.org/105823008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239472 0039d316-1c4b-4281-b951-d872f2087c98
Revert 239460 "Remove usage of PathUtil from CommandHandler."

This revision or revision 239458 broke Linux Chromium OS ASAN Tests (2). Reverting this CL first. (This one depends on the other.)

> Remove usage of PathUtil from CommandHandler.
> 
> To introduce the muti profile and the separate file system, we are moving from
> paths to Entry. Thic CL copies some methods from PathUtil to EntryLocation, and
> removes replace usage of PathUtil with EntryLocation.
> 
> BUG=302090
> TEST=manually
> 
> Review URL: https://codereview.chromium.org/96433003

TBR=hirono@chromium.org

Review URL: https://codereview.chromium.org/106493003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239473 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 239472
SVN changes up to revision 239473