CanvasView refactored to only know about CanvasElements

model element drawing implemented in CanvasElement subclasses
marquee and selected elements re-implemented using CanvasElements
link tool broken, finding link start & end coordinates is tricky