relax requirement that annotation types be subtypes of Annotation,
except for annotation constructor return types
fixes #827