Use declaresInterface instead of implementsInterface

This allows subclasses to implement the same trait as their super classes which allows them to get their own copies of static methods.  grails-data-mapping needs this.
remove problematic type parameter