IVGCVSW-3639 Add 5d tensor support

* Increased MaxNumOfTensorDimensions and fixed issues related to its use
* Fixed issues caused by assuming 5d tensors are invalid
* Updated ArmComputeTensorUtils for 5d tensors
* Added 5d tensor unit tests for add, mul, stack and reshape (needed by IVGCVSW-3527)

Signed-off-by: Matthew Jackson <matthew.jackson@arm.com>
Change-Id: I5bcd64942d0d04efcc6c5acb240ad4b88e010743
diff --git a/include/armnn/Types.hpp b/include/armnn/Types.hpp
index 12897e2..6d8ea6f 100644
--- a/include/armnn/Types.hpp
+++ b/include/armnn/Types.hpp
@@ -13,7 +13,7 @@
 namespace armnn
 {
 
-constexpr unsigned int MaxNumOfTensorDimensions = 4U;
+constexpr unsigned int MaxNumOfTensorDimensions = 5U;
 
 /// @enum Status enumeration
 /// @var Status::Successful
@@ -167,7 +167,12 @@
 
     bool IsEqual(const PermutationVector& other) const
     {
-        return std::equal(begin(), end(), other.begin(), other.end());
+        if (m_NumDimMappings != other.m_NumDimMappings) return false;
+        for (unsigned int i = 0; i < m_NumDimMappings; ++i)
+        {
+            if (m_DimMappings[i] != other.m_DimMappings[i]) return false;
+        }
+        return true;
     }
 
     bool IsInverse(const PermutationVector& other) const