OCSADV-196: ImPolygon

Added ImPolygon class to create polygonal Shape objects independent of diva.
No, probably not, but I don't think I previously knew that `copy` came for free with a `case class`. Indeed, I have my doubts if we even need `copy` or for the class to be serializable, so we can probably do away with both interfaces.