created Shape parent object for reusability

* Grade, ReverseGrade, Triangle, Trapezoid are now children of Shape. Doing this will allow reusing the object without having to specify the coordinates all the time
* grade, reverseGrade, triangle, trapezoid functions are now behaving as a shortcut function that creates the object and execute evaluate method