For this assignment, you will be writing classes that model different kinds of 2
dimensional shapes, and each shape will be able to calculate its perimeter and area.
Well define a superclass call Shape, that consists of a set of points in 2 dimensional
space (Point2D), which represent the vertices and are ordered such that any given
Point2D and the next Point2D represent an edge (a side) of the shape, in a clockwise
manner. The last point and the first point are also assumed to define an edge. The
Point2D objects should be fed into the constructor for each shape IN THAT ORDER.