Fork BanDuplicateClasses

There is, for our purposes, a bug in BanDuplicateClasses such that each
version of an artifact on the classpath is considered, which almost
certainly results in a duplicate class being detected.

We would prefer if only coalesced versions of dependencies were
considered for the purpose of duplicate classes.
Prefer conflict-resolved maven dependencies

The AbstractResolveDependencies class, when building a list of Maven
dependencies to check, will now use the "getRelatedArtifact" method if
it is available. This will return the coalesced version of an artifact
when there is a conflict between dependencies with the same groupId and
artifactId, but different versions.

This fixes the BanDuplicateClasses to no longer detect conflicts between
multiple versions of the same GA combination.
Merge branch 'fix-ban-duplicates'

Includes a modified BanDuplicateClasses plugin to avoid finding duplicates when
there are multiple dependencies with the same groupId and artifactId, but
different versions - as these are resolved automatically be Maven.

See also http://jira.codehaus.org/browse/MOJO-2059 for the original issue. Once
resolved we should be able to remove the shaded classes.