Bug fix and began work on material support

- fixed memory allocation bug in generic version of TrianglePrototype
- fixed seams appearing in primitives in certain cases due to rounding errors
- exposed Color and Material classes to Python code
- added support for using ffmpeg to create video in polytope script
- polytope now uses Solid primitive instead of constructing hypercubes out of
simplices
- moved some helper classes from ntracer_body.hpp to py_common.hpp