PackageManagerService lock-free skeleton

Bug: 161323622

This includes the skeleton of a PackageManagerService "computer",
which contains methods that are executed lock-free.  The skeleton will
be populated in the next CL.

The boolean mSnapshotEnabled is set to false to disable all use of the
snapshots.  The flag will be set true in a final, separate commit
after the skeleton has been populated.  The flag may be set false
again in a single commit to disable the snapshots if a problem is
discovered.  When the flag is set false, PackageManagerService behaves
as it did before snapshots were introduced.

Test: atest
 * FrameworksServicesTests:UserSystemPackageInstallerTest
 * FrameworksServicesTests:PackageManagerSettingsTests
 * FrameworksServicesTests:PackageManagerServiceTest
 * FrameworksServicesTests:AppsFilterTest
 * FrameworksServicesTests:PackageInstallerSessionTest
 * FrameworksServicesTests:ScanTests

Change-Id: I5990261a81ea24aae813a58aa7535b1254f237e7
1 file changed