title: Json.Net PopulateObject - update list elements based on ID
body: <p>It is possible to define a custom "list-merge" startegy used for the <code>JsonConvert.PopulateObject</code> method?</p>
  
  <p><strong>Example:</strong></p>
  
  <p>I have two models:</p>
  
  <pre><code>class Parent
  {
      public Guid Uuid { get; set; }
  
      public string Name { get; set; }
  
      public List&lt;Child&gt; Childs { get; set; }
  }
  
  class Child 
  {
      public Guid Uuid { get; set; }
  
      public string Name { get; set; }
  
      public int Score { get; set; }
  }
  </code></pre>
  
  <p>My initial JSON:</p>
  
  <pre><code>{  
     "Uuid":"cf82b1fd-1ca0-4125-9ea2-43d1d71c9bed",
     "Name":"John",
     "Childs":[  
        {  
           "Uuid":"96b93f95-9ce9-441d-bfb0-f44b65f7fe0d",
           "Name":"Philip",
           "Score":100
        },
        {  
           "Uuid":"fe7837e0-9960-4c45-b5ab-4e4658c08ccd",
           "Name":"Peter",
           "Score":150
        },
        {  
           "Uuid":"1d2cdba4-9efb-44fc-a2f3-6b86a5291954",
           "Name":"Steve",
           "Score":80
        }
     ]
  }
  </code></pre>
  
  <p>and my update JSON:</p>
  
  <pre><code>{  
     "Uuid":"cf82b1fd-1ca0-4125-9ea2-43d1d71c9bed",
     "Childs":[  
        {  
           "Uuid":"fe7837e0-9960-4c45-b5ab-4e4658c08ccd",
           "Score":170
        }
     ]
  }
  </code></pre>
  
  <p>All I need is to specify a model property (by attribute) used for matching list items (in my case the <code>Uuid</code> property of Child), so calling the <code>JsonConvert.PopulateObject</code> on the object deserialized from my initial JSON with a update JSON (it contains ONLY changed values + Uuids for every object) results to update only list elements contained in the update JSON macthed by Uuid (in my case update a Peter's score) and elements not contained in the update JSON leave without change.</p>
  
  <p>I'm searching for some universal solution - I need to apply it on large JSONs with a lot of nested lists (but every model has some unique property). So I need to recursively call <code>PopulateObject</code> on matched list item.</p>