title: Override Json.NET property serialization/formatting
body: <p>Consider the following class:</p>
  
  <pre><code>public class Person
  {
      [DisplayFormat(DataFormatString = "dd/MM/yyyy")]
      public DateTime DOB { get; set; }
  }
  </code></pre>
  
  <p>When serializing the object to JSON with Json.NET I would like to override the serializing if the property is decorated with a <code>DisplayFormatAttribute</code>. This should effectively call:</p>
  
  <pre><code>object toBeSerialized = DOB.ToString(attribute.DateFormatString)
  </code></pre>
  
  <p>Effectively returning a formatted string instead of <code>DateTime</code>.</p>
  
  <p>What's the recommended approach for achieving this with Json.NET?</p>