title: Decodable, doesn't decode optional enum with invalid value
body: <p>I have defined a enum like this:</p>
  
  <pre><code>enum ClubLevel: Int, Codable {
      case golden = 1, silver, bronze
  }
  </code></pre>
  
  <p>in my struct I have an optional property of type <code>ClubLevel</code> and when I decode this property in <code>init(from decoder: Decoder)</code>:</p>
  
  <pre><code>self.clubLevel = try container.decode(ClubLevel?.self, forKey: .clubLevel)
  </code></pre>
  
  <p>I face this error:</p>
  
  <p>debugDescription: <code>"Cannot initialize ClubLevel from invalid Int value 0", underlyingError: nil"</code></p>
  
  <p>I'm wondering even this property is optional, decoder won't continue</p>
  
  <p>any idea? </p>