OCSADV-196: Added ImPolygon class to create polygonal Shape objects independent of diva.
OCSADV-196: Changed to case class, removed interfaces other than Shape, removed some apply methods, removed unnecessary path variable, and made members private.
OCSADV-196: Fixed several bugs in ImPolygon and made changes as recommended by others.
OCSADV-196: Added test cases for ImPolygon.
OCSADV-196: Added scaladoc to clarify meaning of test cases.
OCSADV-196: Fixed some inconsistent spacing and parentheses.
OCSADV-196: Applied DeMorgan's to contains and intersects method expressions, and improved efficiency of the contains for rectangles.
OCSADV-196: Changed contains to use points.nonEmpty check instead of points.length >= 2, since complexity of length is O(n) as opposed to constant complexity for nonEmpty. The length call made no sense and was carried over from the original Batik code, where it was supposedly intended to take care of line segments but did nothing for sets of > 2 collinear points, and nonEmpty seems to work just as well.
OCSADV-196: Removed the empty, 1-point, and 2-point tests from the test case and instead replaced with a test to test a degenerate polygon defined by 0 <= n <= 5 collinear points.
Merge pull request #171 from sraaphorst/feature/OCSADV-196

OCSADV-196: ImPolygon