Add ModuleNetworkStackClient

NetworkStackClientBase / ModuleNetworkStackClient extract functionality
from NetworkStackClient in services.jar, only keeping what is needed for
modules to communicate with the NetworkStack, and not the framework code
that starts the NetworkStack (and uses hidden APIs).

As the NetworkStack is started asynchronously, it is possible for it not
to be registered yet right after boot, so some polling is implemented to
queue requests until it is ready.

NetworkStackClient will inherit from NetworkStackClientBase so that
components in services.jar can access the NetworkStack, using the same
asynchronous mechanism as before (execute pending requests once the
service is connected).

Bug: 147255753
Test: atest NetworkStackTests NetworkStackNextTests FrameworksNetTests
Change-Id: I130aabb3992280d875e0d20b16bc09a9e0261fda
5 files changed