scene: use systems rather than event-propagation for drawing

Note that this is a PR on the scenegraph branch.

WIP: this is not finished. I start the PR to show the direction in which I'd like to go, but we should discuss the role of Document and ViewBox, and whether/how to use systems.

This brings the scene layer more towards a system-component system, by making systems do the "work" (http://en.wikipedia.org/wiki/Entity_component_system). The entities (and visuals) themselves become more descriptive. The system (only implemented drawing system) walks through the hierarchy and performs the drawing. I think this has a few advantages:
- Code for drawing is contained in a unit, so should be easier to maintain and debug
- Since entities are more descriptive, it should be much easier to move to automatic collections: the system walks over the hierarchy and creates collections from entities that are "collectable".

So anyway, I only made it to barely work. The scenegraph/line.py example works though. This demonstrates the idea. Needs discussion before I move further...
 
Add note: *viewport* is a tuple (x,y,w,h), where the origin (x,y) is relative to the _current_ glViewport, not relative to the canvas or fbo.