Changes to make shady-graphics compile.

I think whitespace and AdditiveGroup will be uncontroversial. But I'm not too confident in my new Boolean instance, since I haven't really read up on the Boolean package. And in `src/Shady/Lighting.hs` I added some duplicate code from NumInstances since I was getting complaints about the use of `max` without `Ord` in a couple of places in that file, and simply adding `import Data.NumInstances ()` didn't help. Of course, the preferable solution would be to figure out why that import wasn't helping.