YANG schema: refactor schema search dirs support

I got very confused, because the code in netconf-cli calls these methods
"addFoo", whereas the libayng-cpp calls them "setFoo", even though all
of them simply extend the "foo" with the provided argument. So, let's
refactor these.

Start by making the interface a bit more type safe with
`std::filesystem::path`, and then change the interface of the `yang-cli`
program so that the `-s` option can be now specified several times.

Change-Id: Iad40696b0e133c60e0c0a1512da851650f6ac8a0
diff --git a/src/yang_schema.hpp b/src/yang_schema.hpp
index fe5cf1c..36766d6 100644
--- a/src/yang_schema.hpp
+++ b/src/yang_schema.hpp
@@ -8,6 +8,7 @@
 
 #pragma once
 
+#include <filesystem>
 #include <functional>
 #include <libyang-cpp/Context.hpp>
 #include <optional>
@@ -54,10 +55,10 @@
     void addSchemaString(const char* schema);
 
     /** @short Adds a new module from a file. */
-    void addSchemaFile(const char* filename);
+    void addSchemaFile(const std::filesystem::path& filename);
 
     /** @short Adds a new directory for schema lookup. */
-    void addSchemaDirectory(const char* directoryName);
+    void addSchemaDirectory(const std::filesystem::path& directory);
 
     /** @short Creates a new data node from a path (to be used with NETCONF edit-config) */
     [[nodiscard]] libyang::CreatedNodes dataNodeFromPath(const std::string& path, const std::optional<const std::string> value = std::nullopt) const;