This commit restructures the annotation processor to off-load most of
its logic in a PropertyDescriptor abstraction that is consumed to
generate the relevant metadata.
This has the benefit to isolate the various way properties can be
identified (java bean and lombok for now).
Closes gh-16036