extensions CHANGE cleanup API of the schema compiler for extension plugins

Be more clear by what API of the schema compiler is available for the
extension plugins. While the compilation context is needed, we want to
keep its members hidden to be able to make future changes. Therefore,
there is only a (possibly extensible in a future) set of getter to
access the context's members to be read and updated by the plugins'
compilation callbacks. Another part of the API is a set of compilation
flags to modify the behavior of the internal schema compiler.
diff --git a/src/plugins_exts.c b/src/plugins_exts.c
index f3ede62..ded7c5e 100644
--- a/src/plugins_exts.c
+++ b/src/plugins_exts.c
@@ -22,6 +22,10 @@
 #include "plugins_exts_nacm.c"
 #include "plugins_exts_yangdata.c"
 
+/* internal libyang headers - do not make them accessible to the extension plugins in plugins_exts_*.c */
+#include "common.h"
+#include "schema_compile.h"
+
 /**
  * @brief list of all extension plugins implemented internally
  */
@@ -51,3 +55,21 @@
 
     return NULL;
 }
+
+API struct ly_ctx *
+lysc_ctx_get_ctx(const struct lysc_ctx *ctx)
+{
+    return ctx->ctx;
+}
+
+API uint32_t *
+lysc_ctx_get_options(const struct lysc_ctx *ctx)
+{
+    return &((struct lysc_ctx *)ctx)->options;
+}
+
+API const char *
+lysc_ctx_get_path(const struct lysc_ctx *ctx)
+{
+    return ctx->path;
+}