title: FluentValidation passes an empty string with NotEmpty() when i set an int to empty string
body: <p>I have this validation code</p>
  
  <pre><code>        RuleFor(x =&gt; x.Name).NotEmpty().WithMessage("[[[Name is required.]]]");
          const string sortWeightError = "[[[Sort weight must be a value between 1 and 10000.]]]";
          RuleFor(x =&gt; x.SortWeight).NotEmpty().WithMessage(sortWeightError);
  </code></pre>
  
  <p>where Name is a <code>string</code> and SortWeight is an <code>int</code>.
  When I validate with SortWeight set to 0 and the name to empty string then both fail like they should.</p>
  
  <p>But as soon as i also clear the SortWeight to an empty string (was 0 before) then Name (yes Name, not SortWeight) passes validation even tho it's still an empty string.</p>
  
  <p>If I set the SortWeight to int? instead of int it all works as intended except that it then allows 0 which i fix with GreaterThan.</p>
  
  <p>But still, very odd behaviour, documentation said it should make sure it's not null or empty/whitespace string no matter which type. And weirdest of all, it still did fail the SortWeight field when i passed in an empty string, but it then passed another field (Name) that should always have failed because that always had an empty string.</p>