Implement quarantine service

Creates and implements a QuarantineFile mojo interface.
The implementation in QuarantineImpl calls existing
quarantine::QuarantineFile(), converts the return value to a mojo type,
And runs the callback.

The service is invoked in BaseFile::AnnotateWithSourceInformation,
where QuarantineFile() is now called.

Since asynchronous quarantine should only be done when
kPreventDownloadsWithSamePath is true, leave the non-service path
in for now.

Bug: 870998
Change-Id: I0f668e18b882893d1a8a736a2afe9912dc320b1e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1625944
Reviewed-by: Min Qin <qinmin@chromium.org>
Reviewed-by: Steven Holte <holte@chromium.org>
Reviewed-by: Brian White <bcwhite@chromium.org>
Reviewed-by: Asanka Herath <asanka@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Reviewed-by: Patrick Monette <pmonette@chromium.org>
Commit-Queue: Alexander Woolf <alewoolf@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#670298}
24 files changed