Chained attribution for GnssLocationProvider.

The change is slightly more involved than similar changes in this area
because GnssLocationProvider doesn't treat WorkSources as opaque, it
tries to compute diffs between them (using the only call to
WorkSource.setReturningDiffs in the platform). It also uses WorkSources
tags to make calls to AppOps.

Some of this can be improved generally, but this change is narrower in
scope and only tries to improve battery related attribution.

Test: BatteryStatsTests
Bug: 62390666

Change-Id: Ie28bc91d74d3a0c3b6aaef6ba7c59fc58633efb1
8 files changed