Differentiate between built-in and custom options, custom ones get parens

@JakeWharton

This is deep yak-shaving territory.

If I understand the Google Protobuf Documentation on [Custom Options](https://developers.google.com/protocol-buffers/docs/proto#options), we need to wrap custom options in parens, but leave the built-in ones paren-free.

> ```protobuf
> import "google/protobuf/descriptor.proto";
> 
> extend google.protobuf.MessageOptions {
>   optional string my_option = 51234;
> }
> 
> message MyMessage {
>   option (my_option) = "Hello world!";
> }
> ```
> Here we have defined a new message-level option by extending `MessageOptions`. When we then use the option, the option name must be enclosed in parentheses to indicate that it is an extension.