Cancel IdleService scans when job stopped

With this change, we now have 1:1 mapping between CancellationSignals
and Scans. We keep track of all active scans so we can cancel all
relevant scans when a volume is detached or we exit an idle maint.
window.

Bug: 167523095
Test: Manual
Test: atest ModernMediaScannerTest

(cherry picked from commit 32d6b15f50e6c5cfacdc5b60f9d9f2021d0f489b)

Change-Id: I2b52fb2e51cf0c4e955061e15093fe08bbdd898d
Merged-In: I2f07f2100a2d3172d9ed917c42b891513859cddb
6 files changed