android: Add support for 1.8 javac and desugar

Using --toolchain jdk will now pass the correct dx minimum api level
(enabling it to use default methods, method handles, etc).

Vogar also now calls desugar before dx to convert invoke-dynamic lambdas
into anonymous inner class lambdas (because Android does not have
a LambdaMetafactory).

Test: art/tools/run-libcore-tests.sh --mode=host
Test: art/tools/run-libcore-tests.sh --mode=device
Test: vogar --toolchain jdk --mode activity --no-multidex  libcore/luni/src/test/java/libcore/java/lang/ShortTest.java
Test: vogar --toolchain jdk --benchmark --mode device libcore/benchmarks/src/benchmarks/InvokeInterface.java
Test: java -cp ${ANDROID_BUILD_TOP}/out/host/linux-x86/framework/vogar-tests.jar org.junit.runner.JUnitCore vogar.AllTests
Bug: 36902714
Bug: 37461882
Change-Id: I9553e8304c269cd7e4e2b989729d785852e85f4e
12 files changed