Switch to shadow sampler to avoid a few of the biasing issues
Add transform module
In the demo use transforms instead of trying to write them explicitly
Add equality typeclass for transform and change datatype to record.
Add a negate normal function
Have our camera use the transform module instead of defining its own
Add ambient component
Removed old Location.hs