Avoid abbreviations
Refactor position adding
Use x and z instead of i and j

x and z are more natural than i and j as they are used as the x and y
component of the terrain vertex positions.
Handle attribute and uniform location error
Compute normals for terrains
Move attribute ownership to VertexArray

Attribute pointers are states maintained by VAO instead of shader
programs.
Transform normal by model and view transformations
Add initial double-texturing for terrain
Update include guard to reflect filename change
Fix function comment verb form
Make unary constructors explicit
Remove unsed members from Terrain

These members are accomplished by matrix transformation in the scene
graph.
Allocate scene root as a copy instead of pointer
Encapsulate matrix passing for uniform
Add syntactic sugar to transformation methods