Start refactoring the duplicate checking code.
fix test output directory inclusion
Add quiet flag to silence the plugin if necessary.
Plugin code modernization, next part.

- rip out the apache commons code, replace with guava.
- use builders and immutable code everywhere
- simplify classpath test logic
- remove a bunch of static objects
- use multimaps everywhere instead of the Map<String, List<String>> constructs.
remove non-generified iterators
Ignore all files in META-INF.

This is a long standing request from issues/7.
Rework the classpath scanning and caching logic.

- it now actually works (caching for directories was broken)
- remove most of the regex class <-> file name replacements
- add debugging
Scan the right paths for test and runtime.
Add a couple of integration tests for test and compile scope.
Move ignoredDependency logic into the artifact scanner.

Speeds up when many artifacts are ignored and also makes the code easier to read.
Get rid of the ToStringComparator.

The map keys are strings anyway, use natural ordering.
Rework the artifact match and exclusion logic

Clean up the logic, replace DependencyWrapper with MavenCoordinates, add tests for artifact matching.
clean the default exclusion patterns up a bit
More code cleanups.
factor out varargs logging
Make integration tests agnostic to artifactId and groupId of the project.

Allows for easy testing as maven-duplicate-finder-plugin.
Add more integration tests for project local ignores.
More Plugin renovation work

- Use a result collector for reporting. This ultimately will allow saving the results of a
  duplicate check run (and therefore further processing e.g. with CI plugins)
- Remove the notion of "current project" from the exceptions configuration. That never really worked
  and is not necessary. Add an ArtifactFileResolver which is able to deal with conflicts of the
  current project.
- add new flag 'preferLocal' to determine whether artifacts found in the local repository or
  folders of a local project from a multi-module build shoul be preferred when doing conflict
  resolution
- Fix a bug in the PluginLog, now uses the right log levels
- code formatting
Add result file creation.

Write the complete result of a duplicate check to a file. This allows
outside tools such as CI or an IDE to pick up the results of a
duplicate checker run and post-process or display it.
treat all patterns as case insensitive.