CrOS FilesApp: New event for crostini shared paths changing

Added a new chrome.fileManagerPrivate.onCrostiniSharedPathsChanged
function which receives type CrostiniSharedPathsChangedEvent.

Changed CrostiniSharePath to be a keyed service class since it now
holds state in the form of an ObserverList to receive unshare events.

file_manager::EventRouter registers as an observer for UnsharePath
events and propogates them to FilesApp.

crostiniShare.testSharePathsCrostiniSuccess simulates an unshare event
and verifies that it is handled correctly and a folder which is
unshared can subsequently be shared again.

Bug: 878324
Change-Id: I15ee3d75038f3bb3e127bd4f3effc3829a1854db
Reviewed-on: https://chromium-review.googlesource.com/c/1329816
Reviewed-by: Ben Wells <benwells@chromium.org>
Reviewed-by: Sam McNally <sammc@chromium.org>
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: Nicholas Verne <nverne@chromium.org>
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607778}
24 files changed