renamed Math to 3DMath to resolve naming conflict with math.h, added catch.hpp framework for unit testing