Add invert and transpose methods to matrix and use to compute normal matrix
(there was also a bug previously where normal matrix was derived from MVP
matrix instead of just model view).
Needed to clamp dot product before adding to ambient light term instead of after