REVIEW-1559: Check more details of the dependencies in published ivy.xml and pom.xml
REVIEW-1564: Documentation tweaks
REVIEW-1566: Move version capability check to GradleDistribution
REVIEW-1652: Moved test to live with tested class
REVIEW-1570: Added InvalidIvyPublicationException
REVIEW-1576: Ensure consistent error message for invalid publication exceptions
REVIEW-1651: Renamed IvyProjectIdentity -> IvyPublicationIdentity
Reworked default values and validation for IvyPublication and MavenPublication
- Default IvyArtifact.name to module name on construction, rather than at time of writing ivy.xml (REVIEW-1678)
- Don't permit null values for IvyArtifact.[name|extension|type] or MavenArtifact.extension
    - Allow empty string for extention only
- Updated javadocs for MavenArtifact and IvyArtifact, adding @Nullable where appropriate (REVIEW-1572, REVIEW-1575)
Better test coverage for escaping and encoding in PomFile and IvyDescriptorFile generators (REVIEW-1585, REVIEW-1554)
Restrict characters allowed in Ivy and Maven publication identifiers
- Currently allow all Unicode except ISO Control Chars, '/' and '\'
   - Do not (yet) handle inability to publish to a Windows FS when characters are not permitted: fails silently.
- Added single quote to the set of tested characters, adding relevant escaping in tests
- Extract common field validation code into PublicationFieldValidator
Updates to publication spec
Fixed overly aggressive find/replace