VboMesh now holds a shared_ptr to a VertexLayout object, which will be shared across many meshes
Use reference for iterating over a list
Use a shared_ptr to pass ShaderProgram as a function argument
Clarify the use of 'offset' in VertexLayout