Removed some unused classes.
Mentioned Zsolt's fixes for FreeBSD.
Minor javadoc edits.
Changed GradlePomModuleDescriptorParser to treat a timestamp version in the pom as a -SNAPSHOT version in the meta-data.

- Removed DescriptorParseContext.getCurrentRevisionId() as it is no longer required.
Extracted ComponentMetaData, ComponentArtifactMetaData and ComponentArtifactIdentifier out of the corresponding ModuleVersion types.

- Changed LocalArtifactMetaData so that it is-a ComponentArtifactMetaData.
- Not used anywhere else yet.
Removed some unused classes.
Removed some unused constructors.
Hoisted up getName()  to ComponentArtifactMetaData, for backwards compatibility.
Use ComponentArtifactIdentifier instead of ModuleVersionArtifactIdentifeir in a few places.
Spockified and reworked a jmock test.
Those changes should affect regular compile. Some fixes to the incremental java compilation so that the feature is usable in 1.12. However, the feature is not documented and not announced yet (and should stay this way until 2.0).
Merge branch 'release'

Conflicts:
	subprojects/plugins/src/main/groovy/org/gradle/api/tasks/compile/Compile.java - due to my own changes to inc java compilation.
	subprojects/docs/src/docs/release/notes.md - usual