Refactor IPv4/v6 provisioning mode with different enums.

So far there are two boolean members: mEnableIPv4 and mEnableIPv6
to indicate if IPv4/v6 provisioning should be started or not. But
along with more and more different mode would be supported in the
IpClient, it's hard to maintain mutliple booleans, such as adding
a new boolean to support IPv6 link-local peer-to-peer mode
individually. Intsead using two integer to represent diffent mode
combination would be much easier to maintain.

To keep the backward compatibility with older platforms which don't
have new integer members, just using the IIpClientCallbacks interface
version which WiFi is using to differentiate the platforms, i.e. on
the older platforms still use the boolean enableIPv4/6.

Bug: 161838070
Test: atest NetworkStackTests
Test: verify the wifi connection works manually.

Change-Id: I2e8ae639a9142b4a22e81cdc128823751f368313
29 files changed