another missing <algorithm> include broke windows build
- introduced SurfaceGeometry to carry all the geometric information input to
  BRDF sampling and evaluation functions.
- made Reflectance keep an (optional) pointer to its material
- simplified PhongRefl::sample_dir, with the help of SurfaceGeometry
- worked around microsoft's broken std::thread implementation's deadlock on join
- lambert BRDF importance sampling
- UI + commandline arguments
- font rendering for showing status/progress
- added -ldrawtext to the makefile
- removed -rpath from osx build