OCSADV-196: ImPolygon

Added ImPolygon class to create polygonal Shape objects independent of diva.
Yes, I'll do that, and eliminate the `apply(List[(Double,Double)])` method, which will be no longer necessary if it is a case class.