devtools/madb: extract Android application variant properties

The Gradle/Go code is refactored so that the Gradle script extracts
more information about the application variant outputs.

One variant can have multiple .apk files, and the properties of each
.apk are extracted and cached, such as the absolute path of the .apk
file and its filters indicating what device configurations (e.g. ABIs,
and screen sizes) are compatible with the specific .apk.

Highlevel changes:

* projectIds -> variantProperties
* idCache -> propertyCache (id_cache.go -> property_cache.go)
* one Gradle task for extracting all the information, instead of
  smaller individual tasks
* Gradle script now prints the results in JSON instead of plaintext,
  which is then parsed back to variantProperty instance in Go.

This CL is meant to be the first pass of implementing "madb install"
command, which needs to know the variant output properties and their
filters, in order to install the best matching .apk (among many) to
the individual devices.

Change-Id: I444253aee291ae69fe59a5c02410631d20030caa
11 files changed