A generic jackson JsonDeserializer that supports multiple discriminator columns when deserializing a supertype that has multi level inheritance