Restore covariant returns on BeanPropertyDefiniton subclasses.

Referring the earlier conversation on `BeanPropertyDefinition`. This patch restores the co-variant return types on subclasses, to keep backwards compatibility.