Single table polymorphic models

The main idea is to be able to store models with different logic but same data structure in a single table.
Just a quick example to be clear:
```java
@Table("attachments")
@Polymorphic // or @Polymorphic("customTypeColumn"). By default it is "type"
public abstract class Attachment extends Model {
    @Column("type")
    public String type;
}

@Table("attachments")
@PolymorphicType("image_attachment")
public class ImageAttachment extends Attachment {
}

@Table("attachments")
@PolymorphicType("video_attachment")
public class VideoAttachment extends Attachment {
}
```