Added abstractions from PMD.

This change added TypeDeclarationList, wrapping the List<Class/InterfaceDecl>
code.