title: Support deserialization of inheritance chained objects in kotlin with jackson
body: <p>Assume we need to comply deserialization of such object inheritance structure:</p>
  
  <pre><code>open class Parent(
      @JsonProperty("parent_value")
      val parentValue: String = "default"
  )
  
  class Child(
      @JsonProperty("child_value")
      val childValue: String) : Parent()
  </code></pre>
  
  <p>Both parent &amp; child object define own fields and <code>@JsonProperty</code> over it. </p>
  
  <p>Also i have a test to check deserialization:</p>
  
  <pre><code>@Test
  fun testDeserializeWithInheritance() {
  
      val map = mapOf("child_value" to "success", "parent_value" to "success")
  
      val jsonResult = objectMapper.writerWithDefaultPrettyPrinter()
          .writeValueAsString(map)
  
      println("serialized object: $jsonResult")
  
      val deserialized: JsonConverterModuleTest.Child = objectMapper.readValue(jsonResult)
      println("deserialized object: withdraw=${deserialized.childValue} parentValue = ${deserialized.parentValue}, exchangeFrom = ${deserialized.parentValue}")
  
      assertEquals("success", deserialized.childValue)
      assertEquals("success", deserialized.parentValue)
  }
  </code></pre>
  
  <p>But a problem is the test fails with error:</p>
  
  <blockquote>
    <p>serialized object: {   "child_value" : "success",   "parent_value" :
    "success" }</p>
    
    <p>org.junit.ComparisonFailure: parent value not equal:<br>
    Expected:success<br>
    Actual   :default</p>
  </blockquote>
  
  <p>How to deserialize the child object properly? The main goal is to not duplicate fields nor <code>@JsonProperty</code> annotations in child class.</p>
  
  <p>I have a solution for the issue, but open to accept better one </p>