title: TryValidateObject and IValidatableObject not triggered
body: <p>I have a simple question (or not).</p>
  
  <p>Why when I validate my object, the code below validate one part per time.</p>
  
  <p>If DataAnnotations fails, Validate from IValidatableObject isn't called.
  If DataAnnotations is OK, Validate from IValidatableObject is called.</p>
  
  <p>My question is: Why? I see no reason for this. Am I missing something?</p>
  
  <p>This is my class (e.g.):</p>
  
  <pre><code>class Foo : IValidatableObject
  {
      [Required]
      public DateTime Date { get; set; }
  
      public virtual IEnumerable&lt;ValidationResult&gt; Validate(ValidationContext validationContext)
      {
          var errors = new List&lt;ValidationResult&gt;();
  
          if (Date.Ticks &gt; DateTime.Today.Ticks)
          {
              errors.Add(new ValidationResult("Some error.", new[] { "Date" }));
          }
  
          return errors;
      }
  }
  </code></pre>
  
  <p>This is my validation:</p>
  
  <pre><code>var dto = new Foo();
  
  validationResults = new List&lt;ValidationResult&gt;();
  var context = new ValidationContext(dto, null, null);
  
  Validator.TryValidateObject(dto, context, validationResults, true);
  
  // Force
  //var model = dto as IValidatableObject;
  
  //if (model != null)
  //{
  //    validationResults.AddRange(model.Validate(context));
  //}
  </code></pre>