Fix Application Zygote use for external services.

External services are services that are hosted in a particular
application, but run under the packageName and uid of the calling
application (in order to be able to blame the service correctly). When
using an external service in combination with the AppZygote, the
AppZygote needs to run under the uid and packageName of the application
hosting the actual service, not the caller.

Use the newly introduced HostingRecord class to store information about
the application that is actually hosting the service, so we can create
the AppZygote correctly.

Bug: 127820394
Test: atest CtsExternalServiceTestCases (modified to include app zygote)
      atest android.app.cts.ServiceTest
      atest CtsSeccompHostTestCases
Change-Id: Iac75e4f7a49622a9df70a272bae311da1988e3e9
6 files changed