devtools/madb: handle build variants explicitly and cache the project ids.

1) Now the sub-module name and the build variant name of an Android
   project can be explicitly provided with "-module" and "-variant"
   flags of madb start.  When these are not specified, the first
   available application module and the first build variant is chosen
   with a warning message.

2) The returned project ids are now kept in a cache, so that they can
   be reused without running Gradle scripts again.  The cache is a map
   of (variantKey, projectIds) pair, and implemented in id_cache.go.
   Users can choose to clear the cache and extract the ids again by
   providing "-clear-cache" flag.

3) madb start now also provides "-force-stop" flag which defaults to
   true. Users can set it to false if they just want to bring the
   running app to the front, instead of restarting the app.

Change-Id: I4bdfd34bf7710477a4ff2af3d16c36bec8d1860d
25 files changed