Visuals without scenegraph

Brings proper transform support to visuals when used outside the scenegraph. All visual examples updated accordingly (visuals now draw to the pixel coordinate system, rather than ndc).

There are two ways to use visuals in the absence of a scenegraph:

1. Use `SceneCanvas.draw_visual(...)` 
2. Create a SceneDrawEvent with all the correct transform information and call `visual.draw(event)`.