annotation processors: better error handling

catch exceptions at element processing level and report error using diagnostic api
This prevent to silently fail with raw javac, and give better error recovery during compilation
spec: better error recovery when building spec map