Move NetworkInterface logic away from JNI

OpenJDK implementation of NetworkInterface keeps a lot of logic inside
JNI in order to support multiple platforms. The code is unmaintainable
and has low performance.

This patch moves NetworkInterface away from native implementation, and
use libcore.io as the interface to underlying system call. It uses
getifaddrs(3) to fetch all necessary network information and processes
them within Java.

Bug: 28609551
Test: Passes CTS tests
Change-Id: If8466a18cbc3318219cb04122b1afa8712beb2bc
13 files changed