Merge commit '7e6f072f81ab7ac848bcfb9387bd387fdba7e4c2' into gsoc

# By Robert Burrell Donkin
# Via Robert Burrell Donkin
* commit '7e6f072f81ab7ac848bcfb9387bd387fdba7e4c2':
  Push method into ArchiveGuesser, aiming to potentially extract a common interface
  Move nested class to top level, allowing more flexibility about reuse.
  Store instance in field, ready to be injected
  Inlined static method
  Inject configuration through constructor.
  Push static method into instance.
  Prepare to refactor static methods into object by reducing visibility of methods and removing duplicate tests.
  Ignore the usual
Add plugin cobertura.
Unused Variable.
Apply PMD Rules
Format Code.
Change naming test method.
For each test method there is only one assert.
Add test: testMatchDefaultPhrasesLicense
Add test: testMatchNonPatternLicense
Merge commit '12181afa9329d054da7d26e9430a9dc28eb92e56' into gsoc

# By Robert Burrell Donkin
# Via Robert Burrell Donkin
* commit '12181afa9329d054da7d26e9430a9dc28eb92e56':
  Push static methods into object
  Removed unused methods
  Reduce visibility of methods, preparing to factor out object
  Pull into field, read for future injection
  Push state into object and inject through constructors.
  Inline evocations of static method.
  Factor static methods into object.
  Prepare to factor into an object
Add java doc.
Apply PMD Rules
Format Code.
Add java doc
Apply PMD Rules
Format Code.
Add java doc.
Apply PMD Rules
Format Code.
Apply PMD Rules
Use Interface is better than implementations