Allow customisation of the distribution plugin

Test coverage
Allow distributions to be installed
Generate a TAR distribution
REVIEW-1154 Fleshed out the samples test better, it executes all code paths now. Tweaked the docs and samples a bit.
REVIEW-1154 (also GRADLE-1949) Made the resolution strategy understand useful time units even for jdk5. Made the sample integration test work for all environments, including jdk5. Removed dead method in CompositeNotationParser. The units parsing is implemented in a very simple way - please review.
REVIEW-1471 Made the fixture fail gracefully if afterExecute actions are configured for async Gradle execution.
REVIEW-1487 Mentioned in the release notes the improvement of project depenencies for configuration time resolution. This bugfix is pretty technical and I'm not sure if it's worth mentioning in the docs. I don't find grounds to mark it as a potentially breaking change.
First cut of "improving NTLM" spec
Validate project identity when publishing to maven repository
Validate Maven coordinates against pom file prior to publishing
- Check that identifiers in pom file match Publication identifiers
- Check that pom file is valid for Maven
Validate publication coordinates when publishing to ivy repository
- Introduced IvyPublisher interface and ValidatingIvyPublisher implementation
- Added more tests for support of different characters in ivy publishing, including resolving the published modules
More reserved filesystem characters that cannot yet be used in publication identifiers (attempt to fix windows CI)
Further restrict the character set we use to test publication identifiers, not sure which characters are not supported on windows.
Fix merge problem.
REVIEW-1487 Reworked the way project access listener is notified when resolving the project dependencies.
Move artifact validation out of the domain layer into the MavenPublisher service layer
Disallow empty string values for MavenArtifact extension and classifier (allow null)
- Handle null values in MavenPublisher
Validate IvyArtifacts in service layer when publishing
- Moved some checks from domain into ValidatingIvyPublisher
- Added some validation for artifact attributes
Include publication name in validation error messages when publishing
A tweak to encoding of restricted characters and some javadoc updates.
Some javadoc updates.
Removed unused method.