Improve CI config: add logcat to after_script stage
Improve CI config: clean and compile sources waiting for emulator
Improve CI config: Add allow failures, fast finish and more

Explicit inclusion to build matrix: android 19 and 21, google_apis-google 19 and 21.
Allow failures: google_apis-google 19 and 21.
Fast finish: true
Removed default values defined when AVD is created using bash syntax ${name:-default}
Add tag and name variables to support google_apis and android-wear.
Add a build-tools global env variable shared by all the jobs.
Remove android-20 and sys-img-armeabi-v7a-android-21, already installed by default.
Add MOBI_PKGS variable to list specific packages to be installed for a mobile AVD and job.
Improve SDK updates: avoid to install components already installed or not required.

Explicit inclusion of jobs to a build matrix (JDKxENV) empty.
Now If JDK is defined, must be defined here, otherwise an extra default job will be added.
Allowed failures can fail without causing the entire build to be shown as failed.
Build will finish as soon as a job has failed, or when the only jobs left allow failures.
http://docs.travis-ci.com/user/build-configuration/

Travis CI VM workers updated on December to include SDK tools 24.0.0 but missing
tools(24.0.1), android-21, sys-img-armeabi-v7a-android-wear-21 and latest extras updates.
Cookbook used: https://github.com/travis-ci/travis-cookbooks/tree/6fa020b

By default `android update sdk --all` is executed for each component added to the script.
This can be improved executing only two android update sdk (with/without --all arg):
- Repositories are checked only 2 times vs n times.
- Components already installed can be updated ONLY when an update is suggested.
- If cache is enabled, extras will be updated first time and no reinstalled next builds.
- New components can be defined to be installed only for a SPECIFIC job.
Update Wearable build.gradle and CI config for android-wear-21

Update compileSdkVersion and targetSdkVersion to 21.
Add support libraries recyclerview-v7 and support-v4 as compile dependencies.
Update wait_for_emulator.sh to support more than one emulator simultaneously.
Add ANDROID_SERIAL env variable to support multiple emulators using adb/gradle.
Create a second AVD with android-wear-20 as target by default.
Start a second emulator for an android wear device.
Add before_script logic to switch between emulators when using adb/gradle commands.
Add optional ${WEAR_PKGS:-} variable to support specific android-wear-21 updates.
Add new build matrix job allowing failures and using android-wear-21.

If ANDROID_SERIAL is defined, commands runs for a speficic device.
The default behavior of running across all connected devices
will occur if ANDROID_SERIAL is not defined or is empty. An
exception will be thrown if the targeted DSN is not found.
See https://android-review.googlesource.com/#/c/108985/

The support libraries are transitive dependencies added as quickfix to avoid that
v21.0.0 and no v21.0.3 were selected. Probably need be fixed/improved if is not
required or when dependencies will be updated to support GPS 6.5 etc.

Currently we don't need a second emulator but can be useful in the future.
Combining ANDROID_SERIAL and project names we can select a specific task for a
specific project using Gradle.