Add protobuf descriptor

Intermediate PR to receive early feedback.
GPXDescriptor doesn't need it. If it ok for GPXDescriptor to inherit from Descriptor.h I will merge it.