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) .
What happens if someone puts ```@Field``` on a message? Does it validate applicability?