Enable wifi to perform its own hidden API processing

Previously, the hidden API encoding of the wifi boot dex jars, i.e.
those dex jars that wifi contributes to the bootclasspath were done
as part of the monolithic hidden API processing. This change causes
the encoding to be done by the wifi's bootclasspath_fragment.

This change involves the following:
* Addition of the fragments property to the wifi's
  bootclasspath_fragment module to list all the other
  bootclasspath_fragment modules on which this depends.
* Addition of the additional_stubs property to add stubs for APIs that
  are not provided by another bootclasspath_fragment.
* Moving hidden API flag file entries related to wifi from the flag
  files in frameworks/base/boot/hiddenapi directory into the wifi
  directory with an appropriate OWNERS file to allow them to be managed
  by the Soong and compat team.
* Addition of a PREUPLOAD.cfg hook script to ensure that the flag files
  are sorted.

The build automatically checks that the hidden API flags which are
computed by wifi and encoded into its boot dex jars match those that
are generated by the monolithic processing so this is guaranteed to be
safe.

Bug: 179354495
Test: m com.android.wifi
      - ensure that the generated APEX is byte-for-byte identical
        before and after these changes.
      m out/soong/hiddenapi/hiddenapi-flags.csv
      - make sure that they are not changed by this.
Merged-In: I0788c8ac744a7ce57bd96a86edf233ffaf8302c3
Change-Id: I0788c8ac744a7ce57bd96a86edf233ffaf8302c3
(cherry picked from commit ed9350cdf7ff48afd6de02018d29de1de2139c2f)
6 files changed