Added BufferObject to encapsulate vertex and index buffer
Shader destructor now frees the shader objects