title: Proto-Buf Inheritance Issue
body: <p>I've got a 3 level inheritance graph.
  ProtoBuf 2.0.0.611</p>
  
  <pre><code>QueryRequest
  VenueQueryRequest
  VenueQueryRequestV1
  </code></pre>
  
  <p>All marked with </p>
  
  <pre><code>[DataContract, System.Serializable, ProtoBuf.ProtoContract]
  </code></pre>
  
  <p>QueryRequest includes:</p>
  
  <pre><code>[ProtoInclude(10, typeof(VenueQueryRequest))]
  [ProtoInclude(11, typeof(VenueQueryRequestV1))]
  </code></pre>
  
  <p>When I call SerializeWithLengthPrefix for a VenueQueryRequestV1 I get "Unknown sub-type: VenueQueryRequestV1"</p>
  
  <p>If I ADD (not replace) before making any calls</p>
  
  <pre><code>RuntimeTypeModel.Default[typeof(QueryRequest)].AddSubType(10, typeof(VenueQueryRequest));
  RuntimeTypeModel.Default[typeof(QueryRequest)].AddSubType(11, typeof(VenueQueryRequestV1));
  </code></pre>
  
  <p>I get "Duplicate field-number detected; 10 on: Designertech.AzureServices.Messages.QueryRequest"
  If I only add the second one, I get the same error, but with 11 instead of 10.</p>
  
  <p>If I replace, I get the original error</p>
  
  <p>Which makes it look to me like it should know about the sub-type </p>
  
  <p>Am I potentially messing things up with a cast or something somewhere?
  At the moment, only the base class has any properties declared on it.</p>
  
  <pre><code>[ProtoMember(1)]
  IList&lt;string&gt; RequestedFields
  </code></pre>
  
  <p>This is driving me nuts.</p>
  
  <p>As an aside, this is being used to produce messages to be fed into the CloudFX Azure Service Bus framework.</p>