WifiCountryCode: Refactor to handle multiple ClientModeManager

Top level design:
* If there are multiple ClientModeManager instances (STA + STA), then apply
the country code only if all the ClientModeManager instances are ready
(when all CMM is active and not connecting/connected to a network)

Changes:
* Use the ActiveModeWarden & ClientModeImplMonitor callbacks to get the
necessary info.
* This is a part of a long term effort to slowly remove some
dependencies out of ClientModeImpl.
* Will extend well to new SoftAp related country code changes that are
incoming.

Bug: 180119958
Test: atest com.android.server.wifi
Test: Manual tests:
- With 2 STA's  - Ensure that country code is updated only when
both connections are disconnected.
- With single STA - Ensure that country code is updated only when the
connection is disconnected.
- Scan only mode - Ensure that country code is updated when the device
is in scan only mode.

Change-Id: I9c457b2acb8417a8ed7f7a4bbb5a826208601cf8
7 files changed