Classes that implement an interface also implement its superinterfaces

According to http://docs.oracle.com/javase/specs/jls/se5.0/html/interfaces.html, paragraph 9.3:
"If an extends clause is provided, then the interface being declared extends each of the other named interfaces and therefore inherits the member types, methods, and constants of each of the other named interfaces. These other named interfaces are the direct superinterfaces of the interface being declared. Any class that implements the declared interface is also considered to implement all the interfaces that this interface extends."

This patch makes the interfaces property of the class reflect this rule. Another possible fix is modifying the implementsInterface function to also check superinterfaces.
I think this fix is cleaner as it follows better the specification, but I'm eager to see what you think and change it accordingly.