title: Jackson deserializer with multiple levels of polymorphic type hierachy
body: <p>It seems that this use case is not supported:</p>
  
  <pre><code>@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type")
  @JsonSubTypes({
      @JsonSubTypes.Type(value=B1.class, name="b1"),
      @JsonSubTypes.Type(value=B2.class, name="b2")
  })
  public abstract class A {
      ...
  }
  
  public class B1 extends A {
      ...
  }
  
  @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "subtype")
  @JsonSubTypes({
      @JsonSubTypes.Type(value=C1.class, name="c1"),
      @JsonSubTypes.Type(value=C2.class, name="c2")
  })
  public abstract class B2 extends A {
      ...
  }
  
  public class C1 extends B2 {
      ...
  }
  
  public class C2 extends B2 {
      ...
  }
  </code></pre>
  
  <p>What I want is to resolve this one: { "type": "b1"; ... } to class B1, and { "type": "b2";  "subtype": "c1"; ... } to class C1 and { "type": "b2"; "subtype": "c2"; ... } to class C2.
  Any suggestions?</p>