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) and discussed in [this email thread](http://gradle.1045684.n5.nabble.com/Avoid-duplicates-when-creating-a-zip-file-td5711308.html)

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.