Add support for JsonDeserialize for interfaces

if @JsonDeserialize is found on the interface or parent interface, it
will look at the matching concrete types. If these types have the
JsonTypeInfo annotation set to Id.CLASS, it will try to instantiate the
right type depending on the @class value