IVGCVSW-1913: Fix for ValidationTest.concat_float_3_relaxed

* Added RefPermuteFloat16Workload to serve as a fallback when CL
  does not support the required permute configuration for FP16
* Move Half.hpp to armnnUtils as the utils library should not be
  including private header files from the armnn library

Change-Id: Ibf0f698451e8406f7ed7cce470dab60b6d16361d
diff --git a/src/armnnUtils/Permute.cpp b/src/armnnUtils/Permute.cpp
index 9fe198b..61f4e0e 100644
--- a/src/armnnUtils/Permute.cpp
+++ b/src/armnnUtils/Permute.cpp
@@ -5,6 +5,7 @@
 
 #include "Permute.hpp"
 
+#include "Half.hpp"
 #include <armnn/Tensor.hpp>
 
 #include <cassert>
@@ -109,6 +110,8 @@
 
 // Instantiates for types.
 template void Permute(const armnn::TensorShape& dstShape, const armnn::PermutationVector& mappings,
+                      const armnn::Half* src, armnn::Half* dst);
+template void Permute(const armnn::TensorShape& dstShape, const armnn::PermutationVector& mappings,
                       const float* src, float* dst);
 template void Permute(const armnn::TensorShape& dstShape, const armnn::PermutationVector& mappings,
                       const uint8_t* src, uint8_t* dst);