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/tree_schema.h b/src/tree_schema.h
index e8ef50d..7d7eacc 100644
--- a/src/tree_schema.h
+++ b/src/tree_schema.h
@@ -515,9 +515,10 @@
     void *prefix_data;                      /**< Format-specific data for prefix resolution
                                                  (see ::ly_type_store_resolve_prefix()) */
 
+    struct lysp_stmt *child;                /**< list of the extension's substatements (linked list) */
+
     void *parent;                           /**< pointer to the parent element holding the extension instance(s), use
                                                  ::lysp_ext_instance#parent_stmt to access the schema element */
-    struct lysp_stmt *child;                /**< list of the extension's substatements (linked list) */
     enum ly_stmt parent_stmt;               /**< value identifying placement of the extension instance */
     LY_ARRAY_COUNT_TYPE parent_stmt_index;  /**< in case the instance is in a substatement, this identifies
                                                  the index of that substatement in its [sized array](@ref sizedarrays) (if any) */
@@ -1398,7 +1399,8 @@
     const char *argument;            /**< optional value of the extension's argument */
     struct lys_module *module;       /**< module where the extension instantiated is defined */
     struct lysc_ext_instance *exts;  /**< list of the extension instances ([sized array](@ref sizedarrays)) */
-    struct lysc_ext_substmt *substmts; /**< list of allowed substatements with the storage to access the present substatements */
+    struct lysc_ext_substmt *substmts; /**< list of allowed substatements with the storage to access the present
+                                          substatements ([sized array](@ref sizedarrays)) */
     void *data;                      /**< private plugins's data, not used by libyang */
 
     void *parent;                    /**< pointer to the parent element holding the extension instance(s), use