Add IModelRunner interface to TOSA Reference Model

* Added IModelRunner interface using pimpl idiom, which allows a user to
  initialize, configure and run the model.
* Added unit tests for IModelRunner.
* Added doctest as third-party submodule.
* Added user options to specify paths for dependencies.
* Moved general func_config functions to separate utility, which removes
  cxxopts dependency.

Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com>
Change-Id: If42f1f82cd6dadf18911a48dcd5fa579b719aff2
diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt
index abcc52c..aa6c43d 100644
--- a/thirdparty/CMakeLists.txt
+++ b/thirdparty/CMakeLists.txt
@@ -12,6 +12,13 @@
 
 project(thirdparty LANGUAGES CXX)
 
-add_subdirectory(cxxopts)
 add_subdirectory(serialization_lib EXCLUDE_FROM_ALL)
-add_subdirectory(json EXCLUDE_FROM_ALL)
+
+if(BUILD_TOSA_REFERENCE_MODEL_EXECUTABLE)
+    add_subdirectory(cxxopts)
+    add_subdirectory(json EXCLUDE_FROM_ALL)
+endif()
+
+if(BUILD_TOSA_REFERENCE_MODEL_TESTS)
+    add_subdirectory(doctest EXCLUDE_FROM_ALL)
+endif()