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)`.
Oh wait, scratch that... I think it's the commit that needs to be encoded. Then you should be able to get rid of the `map`