Fix bug with provider enabled state across profiles

Pull all user logic out into a utility class (which can be mocked for
unit testing!).

Provider useability was not properly being updated for all current user
profiles, only for the current user. This fix ensures that all profiles
see the correct useable status for the provider.

Test: atest CtsLocationManagerFineTestCases
Change-Id: I799b16613d6a98e52eb2c561b6605d2c872fbf23
3 files changed