pmd: make ReportTree implement Iterable<RuleViolation>

With the two changes we can easily iterate over a Report or ReportTree using the
for-each loop of Java 5 instead of using Report.iterator() or ReportTree.iterator().

Instead of
```java
ReportTree tree = ...
for (Iterator<RuleViolation> iter = tree.iterator(); iter.hasNext;) {
    RuleViolation rv = iter.next();
    ...
}
```
we can write
```java
ReportTree tree = ...
for (RuleViolation rv : tree) {
    ...
}
```