IVGCVSW-5091 Add Logical ops frontend and ref impl

* Add frontend and reference implementation for logical
  ops NOT, AND, OR.
* Unary NOT uses existing ElementwiseUnary layer and
  ElementwiseUnary descriptor.
* Binary AND/OR uses new layer LogicalBinary and new
  LogicalBinary descriptor.
* Add serialization/deserializion support and add missing
  ElementwiseUnary deserializer code.
* Add additional Boolean decoder in BaseIterator.hpp.

Signed-off-by: James Conroy <james.conroy@arm.com>
Change-Id: Id343b01174053a166de1b98b6175e04a5065f720
diff --git a/include/armnn/Types.hpp b/include/armnn/Types.hpp
index 4a01549..46f246f 100644
--- a/include/armnn/Types.hpp
+++ b/include/armnn/Types.hpp
@@ -85,13 +85,20 @@
     NotEqual       = 5
 };
 
+enum class LogicalBinaryOperation
+{
+    LogicalAnd = 0,
+    LogicalOr  = 1
+};
+
 enum class UnaryOperation
 {
-    Abs   = 0,
-    Exp   = 1,
-    Sqrt  = 2,
-    Rsqrt = 3,
-    Neg   = 4
+    Abs        = 0,
+    Exp        = 1,
+    Sqrt       = 2,
+    Rsqrt      = 3,
+    Neg        = 4,
+    LogicalNot = 5
 };
 
 enum class PoolingAlgorithm