Automatically add evaluation dependency when 'ndkLib' is used.

Fixed test failure in ndkStandaloneSo.

Change-Id: I5ebd84440fdaf34c4087e0ebdb49c25e55e765c6
Create FunctionalSourceSet for native binaries.

Gradle 2.1 source all C/CppSourceSet by default.  Therefore, we need to be able to create sourceSets that are not sourced for the binary.

Change-Id: I31559c5886b498d0ffe5a341a6015cf624c98cf4
Remove unused imports; fix import order. No semantic changes.

Change-Id: I7d543f175a352a3c58f4ff7a8e92177656094a5b
Updated versions of latest supported versions of Gradle and Android plug-in.

Change-Id: If60afd85206f34f951c638bcc77fd1cbe04a8f20
Merge "Remove unused imports; fix import order. No semantic changes." into idea133
Merge "Automatically add evaluation dependency when 'ndkLib' is used." into idea133
Merge "Create FunctionalSourceSet for native binaries." into idea133
Merge "Remove unused imports; fix import order. No semantic changes." into idea133
automerge: 38a5763

* commit '38a5763334e0b3ce6850a702e43c9e0fc67cacf9':
  Remove unused imports; fix import order. No semantic changes.
Merge "Automatically add evaluation dependency when \'ndkLib\' is used." into idea133
automerge: af6ada8

* commit 'af6ada81a67f4f07e584254bd759f47068c8c7b8':
  Automatically add evaluation dependency when 'ndkLib' is used.
Merge "Create FunctionalSourceSet for native binaries." into idea133
automerge: 8098397

* commit '809839708db6518ddc31af7d95091d8be6124c18':
  Create FunctionalSourceSet for native binaries.
Fix multi-apk logic to use versionCode.

The store logic does not actually look for a best
match, but instead look for all compatible devices
and then simply select the one with the highest versionCode.

Changed the model to add the versionCode to the SplitOutput
so that the logic can use it.

Change-Id: I15717a4261b6697eb491cf51679d4dbe5ad57806
Merge "Fix multi-apk logic to use versionCode." into idea133
Fix proguard's handling of config files. again.

My previous fix setup the proguard files with all
possible config files, not knowing which one would
exist or not. It turns out that the tests we have
for this didn't include a case where an aar does not
have a config file.

Proguard requires all files passed during setup to actually
exist during executions.

As a first fix, I'm moving the setup in the doFirst of the
task where we know that the files either exist or don't. I
also fixed our test project to better test this area.

However this uncovered an issue that using doFirst means
that that proguard task will not use changes in config
files to trigger a task execution. If only config files
are changed, the task is considered up to date. This is
a bigger problem to fix that will come in a later fix.

Change-Id: Iecafa7181b0f827eb9f78418acaf98df8e632839
Merge "Fix proguard's handling of config files. again." into idea133
Use a closure to setup proguard's config files.

This allows to compute the list only when the
task is about the run and to properly handle cases where
only the config files are touched (and trigger a new task
execution).

Change-Id: I55aa4d7bdfc4ef95532757a009921de653f20ced
Merge "Use a closure to setup proguard's config files." into idea133
Merge "Updated versions of latest supported versions of Gradle and Android plug-in." into idea133
Merge "Fix multi-apk logic to use versionCode." into idea133
automerge: 5fd3f72

* commit '5fd3f72c40e5a1e9c9e76c9172ff2d68b3c4db4a':
  Fix multi-apk logic to use versionCode.
Merge "Fix proguard\'s handling of config files. again." into idea133
automerge: 7f36d7a

* commit '7f36d7a47d45849c0970f3938a06b0df43de8466':
  Fix proguard's handling of config files. again.
Merge "Use a closure to setup proguard\'s config files." into idea133
automerge: bfa5dd7

* commit 'bfa5dd737ed4a0c2bf038933469a3e1049e81be9':
  Use a closure to setup proguard's config files.