Sync to upstream head.

This change syncs external/ppp with upstream. Specifically it's based on
upstream's 6e8eaa7a78b31cdab2edf140a9c8afdb02ffaca5.

In order to do this without blowing away the Android-specific changes, I
ran a script to try and find a matching revision in upstream's git tree
to the initial commit in external/ppp.

Based on the contents of *.c and *.h files in pppd/, upstream's
f8583676904957554c5a8bd14ede415688835f6c matches with the local revision
82c907af479178801a7a8701341b22c9d20fdb7e.

I diffed upstream's f8583676 with upstream's HEAD and removed chunks
from the result that applied to files that aren't present in Android. In
some places, the diff didn't apply cleanly because of Android-specific
changes:

  1) Local change 8ad0dd2a added two "return UPAP_AUTHNAK;" statements
     in "#if 1" blocks in auth.c. They have been reflected into
     session.c/session_start by always returning SESSION_FAILED.
     (Additionally, new code to query the local password db has been
     disabled via #if !defined(__ANDROID__).)

  2) Upstream now always defines INET6 for Linux so I've pulled IPv6
     support in. (Otherwise sys-linux.c has compile errors.)

  3) linux/ipv6_route.h needed to be included explicitly.

  4) I defined HAVE_LOGWTMP to avoid calling some wtmp functions that
     aren't implemented in Android. A dummy logwtmp is defined.

All the above changes are in __ANDROID__ tags to highlight them.
Additionally I've ensured that all the pre-existing changes are also now
in __ANDROID__ tags.

Change-Id: Ia5abe677d6ba4d5e9f4fbcd4fa03d8911b8bed12
Merge "Sync to upstream head."