Minor clean up

Changes include:
1. Modified Canvas to only draw newly added rectangles, although
   everything still gets redrawn for undo, redo, clear, and change
   canvas colour
2. Commented / orgnaized some things
3. Added gitignore, not sure if it does everything necessary for
   xcode but we'll see.