A simple view to draw on supporting undo, redo, eraser, clear; change brush color and size; callback listeners for draw and canvas state changes