Couple of internal plugins for Gradle.

'distrib' allows copying output jars and their dependencies
in a distribution folder in a way that will match the tools
component of the SDK. It also copies the launcher scripts,
and handles NOTICE files.

'clone-artifacts' is a plugin to pull a clone of some maven
artifacts to allow running Gradle in offline mode.

The distrib plugin pulls the dependencies and their NOTICE
files from the repo setup by the cloneArtifacts plugin.
All modules (Gradle projects and dependencies) *MUST* have
a NOTICE file, or the build will break.

Both plugins make differentiate runtime dependencies and
other dependencies (test, findbugs, etc..) and handle
them through 2 different repositories. Some projects
that are internal only (testutils, sdklib-test) are
flagged as not shipping so that all their dependencies
are handled as internal.

Usage:
To add a new dependency to the clone repository:
    gradlew cloneArtifacts

To push updated distribution files:
    gradlew pushDistribution

Also add a few missing NOTICE.

Change-Id: I9a3321d17c2194e28bc2edefbe74087093812884
31 files changed