Remove usages of std::vector from OpenMP reduction algorithm
The OpenMP Device Reduction algorithm previously used a std::vector to store the reduction results of each thread. This caused problems when T=bool as the types became a proxy type which isn't usable with vtkm BinaryOperators.
Additionally by fixing this issue in the FunctorsOpenMP we can remove a workaround in FunctorsGeneral that caused compile failures when using complex BinaryOperators such as MinAndMax.