title: HasFlags always returns true for None (0) value in enum
body: <p>This is the enum definition:</p>
  
  <pre><code>[Flags]
  enum Animals
  {
      None = 0,
      Dog = 1,
      Cat = 2,
      Horse = 4,
      Zebra = 8,
  }
  </code></pre>
  
  <p>Now, given the following code, why does the HasFlag method return true for the value Animals.None? </p>
  
  <pre><code>Animals myAnimals = Animals.Dog | Animals.Horse;
  
  var hasNone = myAnimals.HasFlag(Animals.None);    //true! Why?
  var hasCat = myAnimals.HasFlag(Animals.Cat);      //false
  var hasDog = myAnimals.HasFlag(Animals.Dog);      //true
  var hasHorse = myAnimals.HasFlag(Animals.Horse);  //true
  var hasZebra = myAnimals.HasFlag(Animals.Zebra);  //false
  </code></pre>