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...
 
Common pitfall perhaps, but setting a ViewBox as parent is a perfectly valid thing to do (for example, I want a legend displayed over the ViewBox). I don't think we want to see a warning message for these cases. 

In pyqtgraph, this has not been a problem because it is very uncommon to set parents directly like this; you would usually use ViewBox.addItem, Grid.addItem, etc.