Updated normal calculations for light

added a bunch of files in glm to deal with matrix inverse and
transposition