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