cleanup: ShaderRepo became singleton, function bodies moved to cpp
VertexBuffer added, it can allocate VBO