Support for @JsonTypeInfo in generated classes

Jackson 2 has a ```@JsonTypeInfo``` annotation available so that (de)serialization of classes that extend abstract classes works correctly. 

Adding this annotation to an abstract POJO will (during serialization) add a top-level property to the schema that specifies a fully qualified class name that specifies the type that a particular json object should be deserialized to. 

This PR allows for an "abstractJavaTypeProperty" that specifies the name of the property that will contain the fully qualified name in the serialized object. 

For example, if your schema contains node with:

```
"abstractJavaTypeProperty" : "className"
``` 

The generated POJO will be an abstract class, and will have this annotation:

```
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "className")
```