[DO NOT MERGE] Compile using Jack.

This allows to compile dex targeted java sources using Jack and Jill.
Default is still to compile with the legacy toolchain. Default can be
switched to the new toolchain by setting environement variable:
export ANDROID_COMPILE_WITH_JACK=true
Toolchain can also be forced for one module by defining
LOCAL_JACK_ENABLED:=full # disabled, full, incremental
in the mk portion defining the module.

Jack execution environement can be controlled with:

Global variable ANDROID_JACK_VM allow to change the jvm executing Jack.
Global variable ANDROID_JACK_VM_ARGS allows to change default args given
to the jvm.
Global variable ANDROID_JACK_EXTRA_ARGS allows to define some default args
to give to Jack

LOCAL_JACK_VM_ARGS allows to override default args given to the jvm for
the module.
LOCAL_JACK_EXTRA_ARGS allows to override default args passed to Jack.

This includes cherry-picks of the following changes:
b4c49cba57dafdcdfb693a549c5a1dc1beb71c25
22c3fa6d73adcf14b38c7cf03446d4e2a892f682
138768c1bbb49d549c4b14281fa5f0bffac7d933
5dd3e1d31293aaaae7c0c213743a7ca77d2dd688
83d5d040479e09a3dea6b7f88ca9a57c4ae984ac
8bc90fd2d6ccf70b65d2d3aad22b0453b86a262d
140274707e31c9585aa28b0de2f1418c64ecd272
0fbc9ff2a2eed243aabaa75e911e55c4cf4b8d4c
833b427d72c91c1d1b7f8ac99fb87a6742eb6f43
f9a27f45b49f670c0258c1b6c19056ae85ac1e45
2809666941aceea4af65ec6f9cea8cce1c1392ed
37822c443d3d2ba88dd009c994f088906a0f5568
c6b44d43c38b80a52ed9ade7f9b503685dd129a7
d2a76c14bf60f45a4bf19721a09a10f758c42a66
06744f60fc48d0a33bd538497e77b624adee7d75
95573d5036e3de1ff26d1a9fc9e832c1b0a476a1
b821391614896e6156ffa3e4c2b0f4aef7e80793
2794e7b5824ba1ea5687c7dcaaf7c7062edfa2bb
801f2c44d0a919284c72eca2be708aedb3a79d88
c76d99dca10bd41a30cbfce4699866716a1d4eaf
f528e132d60fc8c982e41c242017beb6d4f7df76
76a5e0bd1abc19d9d5664a59b9602bb24e15c259
e25b3984ff5c74aa2a49d14b7df7aa9527096c32 Partially, only Jack related parts werekept
ec46a3b71f2746ec209d60ca03f6129d5b129f75
abee3a9f4171a7aaf39c743e7032721b02f43f07
77cbe10fd9c27747f98825f4923a0cfc65b28faf
daf07db4cd5d10b706164904a28323e6223b8aa3
b6bfb5893a64dc23dd4dbcbcbe62fe885bd68632

Ie all Jack related changes untill
b6bfb5893a64dc23dd4dbcbcbe62fe885bd68632
except
a96cc59ab508c1c803c15f4e5f22ab2415b6ac26 "Use Jack by default"

Change-Id: If9d47ef1c4fd1e6765ad2a47d816c1ad3cfab0e3
18 files changed