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) .
The parser is greedy enough to recognized the longest valid sentence. A valid annotation could then be followed by garbage, that's why an extra ')' is ignored. Maybe it makes sense to enforce white space at the beginning of the line where the annotation starts and where it ends. So 'garbage' would only be accepted on a different line. Multiple annotations should still be accepted on the same line.