validation NEW state data checking

Separate flag for validation and parsers.
The reason is to allow not validating
parsed data but checking for state data
such as for <get-config> reply.
diff --git a/src/validation.c b/src/validation.c
index eb28b7c..80766f9 100644
--- a/src/validation.c
+++ b/src/validation.c
@@ -782,6 +782,11 @@
             break;
         }
 
+        if ((val_opts & LYD_VALOPT_NO_STATE) && (node->schema->flags & LYS_CONFIG_R)) {
+            LOGVAL(node->schema->module->ctx, LY_VLOG_LYD, node, LY_VCODE_INSTATE, node->schema->name);
+            return LY_EVALID;
+        }
+
         /* node's schema if-features */
         if ((snode = lysc_node_is_disabled(node->schema, 1))) {
             LOGVAL(node->schema->module->ctx, LY_VLOG_LYD, node, LY_VCODE_NOIFF, snode->name);
@@ -790,7 +795,7 @@
 
         /* TODO node's must */
         /* TODO node status */
-        /* TODO list all keys existence */
+        /* TODO list all keys existence (take LYD_OPT_EMPTY_INST into consideration) */
         /* node value including if-feature is checked by plugins */
     }
 
@@ -921,6 +926,11 @@
 
     LY_CHECK_ARG_RET(NULL, tree, *tree || ctx || (modules && mod_count), LY_EINVAL);
 
+    if (val_opts & ~LYD_VALOPT_MASK) {
+        LOGERR(ctx, LY_EINVAL, "Some invalid flags passed to validation.");
+        return LY_EINVAL;
+    }
+
     next = *tree;
     while (1) {
         if (val_opts & LYD_VALOPT_DATA_ONLY) {