First pass at canvas renderer

Clipping, rotation and scaling are working and they take anchor points
into account. Mouse events are working, except they break when the
anchor point is anything but (0,0,0).