Fixed failing integration tests using Maven 3.1.0.
Release full support for apklibs and other, minor enhancenents and bug fixes.
Candidate for final release version.
creating target defintion modules instead of attaching the targets to the root module with the build-helper-plugin
Merge pull request #175 from rgladwell/targets_modules

Fixed Tycho build for Maven 3.1.
Tidied whitespace.
Refactored classpath container finding logic into utility methods.
Fixed test name giving impression we're testing the inverse of the
actual fixture.
Fixed test that was broken when test project was modified without
properly updating the unit tests.
Tidied copyright notice.
Removed redundant tests for Maven variables in artifact GAV coordinates.
[task #155] Added Non-Runtime Classpath Container

Added separate classpath container for non-runtime Maven dependencies. This was
created for two reasons:

  1. Allow test-scope dependencies to remain in the Eclipse workspace
  classpath, which means we can successfully run the default Eclipse JUnit test
  runner for Android/Maven tests and remove the need for separate test projects
  to run unit tests.

  2. Due to the abuse of the "provided" Maven dependency-scope, some
  dependencies (such as Lombok) are added to this scope but aren't actually
  provided by the platform. These still need to be added to the workspace
  classpath despite being labelled "provided".

The creation of this classpath container means we can still get the advantages
of adding non-runtime dependencies to Eclipse project workspaces without the
disadvantage of having unwanted dependencies included in the APK build step.
Previously we were stripping all non-runtime dependencies (e.g. test, provided,
etc.) from the classpath container but this was too broad.

We now have to explicitly strip the actual platform-provided dependencies
from both the Maven and Non-Runtime classpath container. This looks for the
dependency with the artifact ID "android" and group ID "com.google.android" and
strips it, and its dependencies, from all classpaths. Obviously, if these magic
strings change this will break this code so its more brittle than the old
method.

This change includes a full suite of integration tests to verify the new
classpath container behaves as expected.

There maybe some problems associated with this change: for example, the new
classpath container may break other plugins that expect all Maven dependencies
to be in the one, Maven classpath container.

Several re-factorings were also made as part of this change:

The project configuration code (modifying the actually project parameters) was
renamed to the more accurate "workspace configuration" code.

I refactored the classpath configuration code into separate "Command" design
patterns (as has been previously done for the workspace configuration code),
increasing the readability of the code and removing the "god object" that was
responsible for configuring the Eclipse workspace classpath.

Lastly, some basic logging was added to the application. This logging maybe
overly verbose for a production release.
Added additional test launcher settings for Kepler.
Fixed update site publishing for Maven 3.1.
Merge remote-tracking branch 'scratch/nonruntime-classpath-container'
Launcher updated for Eclipse Kepler.
Removed unused imports.
Refactored depedency resolution code into separate package.
Refactored code to prune platform-provided dependencies from persisted
classpath.
Removed logging

Eclipse's logging framework is very verbose and causes issues on CI
builds. Removed in favor of a better logging option, possible SLF4J and
Logback.