Use simd OpenMP pragma only when available
The simd OpenMP pragma was introduced in OpenMP 4.0, but the code neither checked for the OpenMP version at configure time, nor it checks for it at build time. This causes compilers with older OpenMP versions to produce warnings when building the code, which in turn causes compilation errors when configuring the project by default.
This commit adds a check on the _OPENMP macro value in all places where the simd OpenMP pragma is used. Alternatively one could do this check at configure time and disallow compilation altogether if the requirement is not met.
This is related to #699 (closed)