Added the base shape class shape.js. Changed the implementation of the shapes so they can be reusable. Many OOP changes.