JNI: Initial commit of Java library + example program

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
android: Enable JNI in build

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
android: Add libstoken to build

This was tested with NDK release r8e on ARM (on a real device) and
x86 (compile only).

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
android: Add liboath to build

Compile-tested with NDK r9:

    make NDK=/opt/android-ndk-r9 GCCVER=4.8

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
android: Add "sources" target

Provide an easy way to download and extract the source tarballs in
anticipation of a multiplatform build.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
main: Add --timestamp option

This is useful for debugging connection timeouts and DPD/Keepalive
problems.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
library: Fix incorrect platform ID for Mac

Cisco AnyConnect web deploy packages (anyconnect-<platform>-*.pkg) version
>= 3.0 contain a headinfo.txt file which designates the <device-id> value
that is sent upon connection:

    anyconnect-linux-3.1.02043-k9.pkg:device-id=linux
    anyconnect-linux-3.1.03103-k9.pkg:device-id=linux
    anyconnect-linux-64-3.1.04066-k9.pkg:device-id=linux-64
    anyconnect-macosx-i386-3.0.5080-k9-webauto.pkg:device-id=mac-intel
    anyconnect-macosx-i386-3.1.02040-k9.pkg:device-id=mac-intel
    anyconnect-macosx-i386-3.1.03103-k9.pkg:device-id=mac-intel
    anyconnect-win-3.0.5080-k9.pkg:device-id=win
    anyconnect-win-3.1.00495-k9.pkg:device-id=win
    anyconnect-win-3.1.02040-k9.pkg:device-id=win
    anyconnect-win-3.1.03103-k9.pkg:device-id=win

The ASA looks at each of its installed web deploy *.pkg files to match
these IDs.  If it finds a match, it allows XML POST for that session; if
not it will redirect the client to the legacy /+webvpn+/index.html (which
may eventually result in a denial based on the DAP settings).

After inspecting various *.pkg files, it became apparent that device-id
"mac" isn't actually a valid platform name.  The correct identifier is
"mac-intel".

Making this change on the client side causes gateways with the appropriate
*.pkg files installed to enable XML POST for Mac clients.

Both CLI users and library API users will now need to specify "mac-intel"
instead of "mac".

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Update documentation/help with the correct "--os" names

This should probably be updated on Transifex too, as the old help text
incorrectly specified "mac".

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
www: Update changelog

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Fix a few minor memory leaks

Also, vpninfo->cookie was an "owned" string in XML POST mode, but a
pointer into the cookie list in legacy mode.  Now it is always an "owned"
string and will be freed properly.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>