Better templating for normalizeVec.
constexpr's instead of macros. Made a GradientType struct to allow for automatic gradient type definitions.