Provide documentation annotations for message, field and enum descriptors

Parse java-like annotations from the doc comment and provide the syntax tree to the user via GenericDescriptor.getAnnotations() and FieldDescriptor.getAnnotations().

This is needed to support ISPN-3718 (Select which protobuf fields to index) .
Yes, the parser is very lenient and allows any annotations with any attributes, as long as they o bey the syntax rules. The unknown annotations or unknown attributes are just ignored. I reckon this might not be ideal, users could easily misspell something and then wonder why it does not work, so I'll add some validation to disallow unknowns.