wifi: Allow configuration of country code for wifi

Wifi country code handling is a nightmare - Most retail devices
have region customization in /system for each country a device
is shipped to.

This doesn't work very well for a firmware like Cyanogenmod,
where we try to support all target countries with one firmware
package.  For whatever reason, with newer Broadcom drivers/
firmware blobs, the old trick of using a universal region code
(ccode=ALL in nvram_net.txt) does not seem to work.  Who knows
what the deal is for other wifi chipsets.

The good thing is that wpa_supplicant has a standardized
cross-chipset method for setting the region code, and we
use that here.

Change-Id: Ia9f5133f61f56d89ccb290e37a393f5de507e1cf
Wifi: Allow configuration of Ad-Hoc (IBSS) networks

Show Ad-Hoc (IBSS) networks in the list of available Wi-Fi networks and allow
to connect to or create new Ad-Hoc (IBSS) networks.

This requires the IBSS changes in frameworks/base and external/wpa_supplicant_8

Change-Id: Ie44c47753100bbf8e691446e69b8d31659f64e3b
Wifi: Enable IBSS options only if IBSS is supported

Show IBSS network options only if IBSS mode is supported by the Wifi driver.

This makes use of the new API isIbssSupported() of WifiManager. We have to be
careful to make the query only after we reached WIFI_STATE_ENABLED.

WifiSettingsForSetupWizardXL is left out because it does not handle these
states.

Change-Id: I072c5cc6ed36305806b469cf05c4786d22bfd418