[MPMD-168] Add parameter to skip report generation if there are no violations/duplications.

 * The report generation for both PMD and CPD is split from the actual
   execution of these tools.
 * PMD and CPD are now executed already when canGenerateReport() is called.
 * The new parameter is called "skipEmptyReport" and is by default "false"
   to remain backwards compatibility.