OCSADV-196: ImPolygon

Added ImPolygon class to create polygonal Shape objects independent of diva.
I think this probably doesn't do what you want; it will construct every combination of `(x, y)` values which will leave you with a grid of connected points. I think you want to say something like:

```scala
new ImPolygon((pol.xpoints, pol.ypoints).zipped.toList)
```