fix a issue in Node::addChild

Signed-off-by: Wayne Wolf <wayne.ron.wu@googlemail>
remove MatrixStack

Signed-off-by: Wayne Wolf <wayne.ron.wu@googlemail>
load light parameter to shader in drawNode

Signed-off-by: Wayne Wolf <wayne.ron.wu@googlemail>
addChild to attachChild

Signed-off-by: Wayne Wolf <wayne.ron.wu@googlemail>
Mesh is referenced in GeoNode

Mesh is originally an array of some Node, now move to a GeoNode,
each GeoNode reference only one Mesh, this can simplify node traversal

Signed-off-by: Wayne Wolf <wayne.ron.wu@googlemail>
Remove NodeTree & use draw virtual interface

Signed-off-by: Wayne Wolf <wayne.ron.wu@googlemail>
fix one missing drawNode of GeoNode

Signed-off-by: Wayne Wolf <wayne.ron.wu@googlemail>
move Shader definiation and implementation to separate files

Signed-off-by: Wayne Wolf <wayne.ron.wu@googlemail>
ProgramManager skeleton to manage built-in shaders

Signed-off-by: Wayne Wolf <wayne.ron.wu@googlemail>
attach shader to node

attach shader to node, not the whole scene. This allows using different
shaders for different node. The draw procedure is slightly changed to
accommodate this change.

Also move scene graph to separate files. Keep gl and Render code
transparent to Mesh and Scene.

Signed-off-by: Wayne Wolf <wayne.ron.wu@googlemail>