Fix armnn_external_delegate option parsing

 * Fixed the mechanism in armnn_delegate.cpp which creates the runtime
   options by moving it to DelegateOptions. BackendOptions are used in
   the runtime options as well as in the optimizer options but need
   to be processed separately.
 * Added runtime options to DelegateOptions to make it easier to differ
   between backend options of the runtime and the optimization
 * Updated armnn_external_delegate to use runtime options
 * Added explanations to OptimizerOptions

Signed-off-by: Jan Eilers <jan.eilers@arm.com>
Change-Id: I34235474147def261821e4576dd41a83ad492258
diff --git a/delegate/src/armnn_delegate.cpp b/delegate/src/armnn_delegate.cpp
index ae25430..966d17c 100644
--- a/delegate/src/armnn_delegate.cpp
+++ b/delegate/src/armnn_delegate.cpp
@@ -137,21 +137,7 @@
     }
 
     // Create ArmNN Runtime
-    armnn::IRuntime::CreationOptions runtimeOptions;
-    runtimeOptions.m_DynamicBackendsPath = m_Options.GetDynamicBackendsPath();
-    runtimeOptions.m_EnableGpuProfiling = m_Options.GetGpuProfilingState();
-    runtimeOptions.m_ProfilingOptions = m_Options.GetExternalProfilingParams();
-
-    auto backendOptions = m_Options.GetBackendOptions();
-    if (!backendOptions.empty())
-    {
-        runtimeOptions.m_BackendOptions = backendOptions;
-    }
-    else if (!m_Options.GetOptimizerOptions().m_ModelOptions.empty())
-    {
-        runtimeOptions.m_BackendOptions = m_Options.GetOptimizerOptions().m_ModelOptions;
-    }
-    m_Runtime = armnn::IRuntime::Create(runtimeOptions);
+    m_Runtime = armnn::IRuntime::Create(options.GetRuntimeOptions());
 
     std::vector<armnn::BackendId> backends;
     if (m_Runtime)