IVGCVSW-863 Move clamp, for_each, foldl to misc/utility.h

Also, improve for_each, foldl, and related changes.

Change-Id: I0cf0c7dbf88f26bb70cc734ba9fb5725d405585f
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/114014
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: Jenkins <bsgcomp@arm.com>
diff --git a/tests/validation/reference/Scale.cpp b/tests/validation/reference/Scale.cpp
index 727325f..0cc96ab 100644
--- a/tests/validation/reference/Scale.cpp
+++ b/tests/validation/reference/Scale.cpp
@@ -22,10 +22,9 @@
  * SOFTWARE.
  */
 
-#include "arm_compute/core/Helpers.h"
-
 #include "Scale.h"
 #include "Utils.h"
+#include "arm_compute/core/utils/misc/utility.h"
 #include "support/ToolchainSupport.h"
 
 namespace arm_compute
@@ -119,8 +118,8 @@
                     }
                     else if(border_mode == BorderMode::REPLICATE)
                     {
-                        id.set(0, clamp(static_cast<int>(x_src), 0, width - 1));
-                        id.set(1, clamp(static_cast<int>(y_src), 0, height - 1));
+                        id.set(0, utility::clamp<int>(x_src, 0, width - 1));
+                        id.set(1, utility::clamp<int>(y_src, 0, height - 1));
                         out[element_idx] = in[coord2index(in.shape(), id)];
                     }
                 }