title: Does protocol buffers support lightweight reference serialization
body: <p>Suppose a class like this:</p>
  
  <pre><code>class Person {
    public string Name;
    public Person Parent;
  }
  </code></pre>
  
  <p>Now you create two objects:</p>
  
  <pre><code>...
  Person mike = new Person("Mike");
  Person jack = new Person("Jack");
  jack.Parent = mike;
  List&lt;Person&gt; family = new List&lt;Person&gt;();
  people.Add(mike);
  people.Add(jack);
  ...
  </code></pre>
  
  <p>Will the string "Mike" serialized once (maintaining) a unique reference to object mike and then resolving it, or will be serialized twice?</p>