added math.hpp to fix gamma name collision

The cmath/math.h header defines a gamma function. Added a math.hpp header that resolves the name collision. The only catch is that this header needs to be included before anything else, especially other system headers or boost library headers, as they might include the math library as well.