netd: Support the Qualcomm SoftAP SDK.

The Qualcomm SoftAP SDK extendes the HotSpot capability provided by
the stock Android distribution.  This allows the creation of a more
feature-rich HotSpot application.

In order to minimize the changes required to the stock Android
distribution, place the majority of the changes into a new
QualcommSoftapCmd class that contains most of the command dispatching
logic.
(cherry picked from commit fe80af085ac7a46243b923a617619d5f6fe5b0cd)

Change-Id: I866934c446b8fc2a670a445c7e425e0948956bf7
netd: Change QualcommSoftapCmd to add AR6004 support

Currently, commands for setting SoftAP will be redirected
to QualcommSoftapCmd, and this will set some fields in
the hostapd.conf that AR6004 driver doesn't support.

In this change, "set" command will be redirected to
the Android native SoftapController to let AR6004 able run
into softap mode, when the WLAN is AR6004.

Change-Id: I15951d99207a7ed67f2bf4986343e19bfdf3eb7f
netd: IPv6 Tethering Support

This patch modifies netd to receive addUpstreamInterface and
removeUpstreamInterface commands from the tethering java
framework. Adds v6start/v6stop which calls the ICMPv6 forwarder
with the appropriate interfaces. Enables IPv6 forwarding.
CRs-Fixed: 428321

Change-Id: I17805c9e10ec07832cadb9d1f12e8d1302a9aaa0
netd: Add enhanced routing support

Add support for policy and metric based routing APIs to netd. This
functionality is used for WQE, IMS, and Android QoS features.

Combined merge commit for following commits

netd: Do not reset routing policies

Stop flushing of all routing policies when resetting to default rule
configuration. This is detrimental to other policy routes set on the
system and creates a conflict. Tethering related rules are already
removed by NatController so this step is unnecessary.

(cherry picked from commit 64e7e8102d233f46fe6cd4c8311301da0d4444da)
(cherry picked from commit e36cabf99eb9c8ceb08c81adca465c8e421a8d59)

netd: add metric support for routing

Add support for adding of cost (metric) of a route.
Changed call to ip from logwrapper to popen to handle errors caught during
a route operation.

(cherry picked from commit 5325183e94ad2ad0bd9399dcff620f061ce3a431)
(cherry picked from commit 72d33e4a5947bcd9bb4dfa318d36ba23b0de3409)

netd: Add policy routing functionality to netd

Adding a new class RouteController to handle policy routing (source)
functionality in netd.
Installing a handler in CommandListener to handle policy routing
commands.

(cherry picked from commit 07c8592a7f43b46f11ad05ffbbb8bdf35fd078f8)
(cherry picked from commit 8ad39dcf7927a7cadb763b5d731b1c5f933d33df)
(cherry picked from commit 5ba8d9d41a5dce9131c1a45d5770de03ef79e550)

Change-Id: If9a26cb7fdcced452a61a61639248fc53b6a77d4
netd: IPv6 Tethering Support

This patch modifies netd to receive addUpstreamInterface and
removeUpstreamInterface commands from the tethering java
framework. Adds v6start/v6stop which calls the ICMPv6 forwarder
with the appropriate interfaces. Enables IPv6 forwarding.

Change-Id: Ic857f15ea9c5ec4be0dbde2656b55e65060f4497