title: Deserialization with @JsonSubTypes for no value - missing property error
body: <p>I deserialize jsons like this:</p>
  
  <pre><code>{
    "type":"a",
    "payload" : {...}
  }
  </code></pre>
  
  <p>where payload type depends on type. My class:</p>
  
  <pre><code>public class Sth&lt;T extends Payload&gt; {
  
      @JsonProperty("type")
      private String type;
      @Valid
      private T payload;
  
      @JsonTypeInfo(
          use = JsonTypeInfo.Id.NAME,
          include = JsonTypeInfo.As.EXTERNAL_PROPERTY,
          property = "type",
          visible = true,
          defaultImpl = NoClass.class)
      @JsonSubTypes({
          @JsonSubTypes.Type(value = APayload.class, name = "a"),
          @JsonSubTypes.Type(value = BPayload.class, name = "b"),
          @JsonSubTypes.Type(value = CPayload.class, name = "c")})
      public void setPayload(T payload) {
      this.payload = payload;
      }
  
      public void setType(String type) {
      this.type = type;
      }
  
  }
  </code></pre>
  
  <p>I have also type "d" with no payload. If I try to deserialize:</p>
  
  <pre><code>{
    "type":"d",
    "payload" : null
  }
  </code></pre>
  
  <p>it works but it doesn't work with no payload:</p>
  
  <pre><code>{
    "type":"d",
  }
  </code></pre>
  
  <p>How to make it work with last example?</p>
  
  <p>Stacktrace of error that I get:</p>
  
  <pre><code>[error] Caused by: com.fasterxml.jackson.databind.JsonMappingException: Missing property 'payload' for external type id 'type
  [error]  at [Source: N/A; line: -1, column: -1]
  [error]     at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:164)
  [error]     at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:700)
  [error]     at com.fasterxml.jackson.databind.deser.impl.ExternalTypeHandler.complete(ExternalTypeHandler.java:160)
  [error]     at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeWithExternalTypeId(BeanDeserializer.java:690)
  [error]     at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeWithExternalTypeId(BeanDeserializer.java:639)
  [error]     at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:266)
  [error]     at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:124)
  [error]     at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:2965)
  [error]     at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:1587)
  [error]     at com.fasterxml.jackson.databind.ObjectMapper.treeToValue(ObjectMapper.java:1931)
  [error]     at play.libs.Json.fromJson(Json.java:47)
  </code></pre>