GRADLE-2171 Duplicate entries in archives -- per-file configuration

Added DuplicatesStrategy allowing duplicate files (based on their path) to be included or excluded on a per-file basis

This addresses story #1: [User declares strategy for dealing with duplicates](https://github.com/gradle/gradle/blob/master/design-docs/duplicate-entries-in-archives.md)

One note in particular: I was a little unsure of the cleanest way to implement the slightly different behavior for Copy tasks vs. Archive tasks (copy tasks issue a warning when including duplicates). CopyActionImpl has a method boolean isWarnOnIncludeDuplicates() that is overridden by ZipCopyActionImpl and TarCopyActionImpl. Please let me know if there is a better solution.