IVGCVSW-6114 Create multiple LoadedNetworks from one OptimizedNetwork

 * Added IOptimizedNetwork constructor that takes another
   IOptimizedNetwork and a ModelOptions.
 * Changed PreCompiledLayer to use shared_ptr rather than unique_ptr
   to store the PreCompiledObject (no interface changes).
 * Added unit tests to ensure that PreCompiledLayer::Clone() clones
   the pointer to the PreCompiledObject correctly.

Signed-off-by: Mike Kelly <mike.kelly@arm.com>
Change-Id: I3ef56055e0d189ffce9e651882d34da16c70a240
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 78c2f17..9ac7ecf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -561,6 +561,7 @@
 if(BUILD_UNIT_TESTS)
     set(unittest_sources)
     list(APPEND unittest_sources
+        src/armnn/test/CloneTests.cpp
         src/armnn/test/ConstTensorLayerVisitor.hpp
         src/armnn/test/ConstTensorLayerVisitor.cpp
         src/armnn/test/EndToEndTest.cpp