Improve model.

Since we are already changing the model in non compatible
way, now is a good time to fix some issues.

Refactoring all the properties of an artifact out of variant
and into its own ArtifactInfo class, so that we can have both
the main and test artifact in the variant in an elegant way.

Also adding SigningConfig info to enable the creation of
export wizard from the IDE.

Change-Id: Ib6c48873ba0e5c5a61bc1e79b00a90e2be83652f

Conflicts:
	builder-model/src/main/java/com/android/builder/model/AaptOptions.java
	builder/src/main/java/com/android/builder/AndroidBuilder.java
	builder/src/main/java/com/android/builder/DefaultBuildType.java
	builder/src/main/java/com/android/builder/DefaultProductFlavor.java
	builder/src/main/java/com/android/builder/VariantConfiguration.java
	builder/src/main/java/com/android/builder/signing/DefaultSigningConfig.java
	builder/src/main/java/com/android/builder/signing/KeystoreHelper.java
	builder/src/main/java/com/android/builder/testing/TestData.java
	builder/src/main/java/com/android/builder/testing/TestRunner.java
	builder/src/test/java/com/android/builder/VariantConfigurationTest.java
	builder/src/test/java/com/android/builder/signing/KeyStoreHelperTest.java
	gradle-model/build.gradle
	gradle-model/src/main/java/com/android/build/gradle/model/AndroidProject.java
	gradle-model/src/main/java/com/android/build/gradle/model/Variant.java
	gradle-model/src/test/java/com/android/build/gradle/model/AndroidProjectTest.java
	gradle/src/build-test/groovy/com/android/build/gradle/AutomatedBuildTest.java
	gradle/src/main/groovy/com/android/build/gradle/AppExtension.groovy
	gradle/src/main/groovy/com/android/build/gradle/AppPlugin.groovy
	gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy
	gradle/src/main/groovy/com/android/build/gradle/LibraryExtension.groovy
	gradle/src/main/groovy/com/android/build/gradle/api/ApkVariant.java
	gradle/src/main/groovy/com/android/build/gradle/internal/api/ApplicationVariantImpl.java
	gradle/src/main/groovy/com/android/build/gradle/internal/api/TestVariantImpl.java
	gradle/src/main/groovy/com/android/build/gradle/internal/dsl/AaptOptionsImpl.groovy
	gradle/src/main/groovy/com/android/build/gradle/internal/dsl/BuildTypeDsl.groovy
	gradle/src/main/groovy/com/android/build/gradle/internal/dsl/SigningConfigDsl.java
	gradle/src/main/groovy/com/android/build/gradle/internal/dsl/SigningConfigFactory.groovy
	gradle/src/main/groovy/com/android/build/gradle/internal/model/DefaultAndroidProject.java
	gradle/src/main/groovy/com/android/build/gradle/internal/model/ModelBuilder.groovy
	gradle/src/main/groovy/com/android/build/gradle/internal/model/VariantImpl.java
	gradle/src/main/groovy/com/android/build/gradle/internal/tasks/SigningReportTask.groovy
	gradle/src/main/groovy/com/android/build/gradle/internal/tasks/ValidateSigningTask.groovy
	gradle/src/main/groovy/com/android/build/gradle/tasks/ProcessAppManifest.groovy
	gradle/src/test/groovy/com/android/build/gradle/AppPluginInternalTest.groovy
	gradle/src/test/groovy/com/android/build/gradle/LibraryPluginDslTest.groovy

	new file:   builder-model/src/main/java/com/android/builder/model/AaptOptions.java
	new file:   builder-model/src/main/java/com/android/builder/model/SigningConfig.java
	new file:   builder/src/main/java/com/android/builder/AndroidBuilder.java
	new file:   builder/src/main/java/com/android/builder/DefaultBuildType.java
	new file:   builder/src/main/java/com/android/builder/DefaultProductFlavor.java
	new file:   builder/src/main/java/com/android/builder/VariantConfiguration.java
	new file:   builder/src/main/java/com/android/builder/signing/DefaultSigningConfig.java
	new file:   builder/src/main/java/com/android/builder/signing/KeystoreHelper.java
	new file:   builder/src/main/java/com/android/builder/testing/TestData.java
	new file:   builder/src/main/java/com/android/builder/testing/TestRunner.java
	new file:   builder/src/test/java/com/android/builder/VariantConfigurationTest.java
	new file:   builder/src/test/java/com/android/builder/signing/KeyStoreHelperTest.java
	new file:   gradle-model/build.gradle
	new file:   gradle-model/src/main/java/com/android/build/gradle/model/AndroidProject.java
	new file:   gradle-model/src/main/java/com/android/build/gradle/model/ArtifactInfo.java
	new file:   gradle-model/src/main/java/com/android/build/gradle/model/Variant.java
	new file:   gradle-model/src/test/java/com/android/build/gradle/model/AndroidProjectTest.java
	new file:   gradle/src/build-test/groovy/com/android/build/gradle/AutomatedBuildTest.java
	new file:   gradle/src/main/groovy/com/android/build/gradle/AppExtension.groovy
	new file:   gradle/src/main/groovy/com/android/build/gradle/AppPlugin.groovy
	new file:   gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy
	new file:   gradle/src/main/groovy/com/android/build/gradle/LibraryExtension.groovy
	new file:   gradle/src/main/groovy/com/android/build/gradle/api/ApkVariant.java
	new file:   gradle/src/main/groovy/com/android/build/gradle/internal/api/ApplicationVariantImpl.java
	new file:   gradle/src/main/groovy/com/android/build/gradle/internal/api/TestVariantImpl.java
	new file:   gradle/src/main/groovy/com/android/build/gradle/internal/dsl/AaptOptionsImpl.groovy
	new file:   gradle/src/main/groovy/com/android/build/gradle/internal/dsl/BuildTypeDsl.groovy
	new file:   gradle/src/main/groovy/com/android/build/gradle/internal/dsl/SigningConfigDsl.java
	new file:   gradle/src/main/groovy/com/android/build/gradle/internal/dsl/SigningConfigFactory.groovy
	new file:   gradle/src/main/groovy/com/android/build/gradle/internal/model/ArtifactInfoImpl.java
	new file:   gradle/src/main/groovy/com/android/build/gradle/internal/model/DefaultAndroidProject.java
	new file:   gradle/src/main/groovy/com/android/build/gradle/internal/model/ModelBuilder.groovy
	new file:   gradle/src/main/groovy/com/android/build/gradle/internal/model/SigningConfigImpl.java
	new file:   gradle/src/main/groovy/com/android/build/gradle/internal/model/VariantImpl.java
	new file:   gradle/src/main/groovy/com/android/build/gradle/internal/tasks/SigningReportTask.groovy
	new file:   gradle/src/main/groovy/com/android/build/gradle/internal/tasks/ValidateSigningTask.groovy
	new file:   gradle/src/main/groovy/com/android/build/gradle/tasks/ProcessAppManifest.groovy
	new file:   gradle/src/test/groovy/com/android/build/gradle/AppPluginInternalTest.groovy
	new file:   gradle/src/test/groovy/com/android/build/gradle/LibraryPluginDslTest.groovy