Refactored some of the code for calculating diffuse so that it's easier to put specular in.