Fixed a documentation error in reduce_task.h.
Changed DotReduction from a struct to a class.
- Corrected the name of BinaryReduceWrapper "this class" typedef.
- BinaryReduceWrapper::reduce() now uses the correct function enabler.
- Fixed compile errors with expression and expression engines by introducing trait classes for each object.
- Changed the inheritance pattern for multiplication and contraction engines to be linear.