schema parsers BUGFIX handling includes in submodules

The result of parsing includes in submodule was incorrectly checked.

Instead of parsing submodule all the times, check the submodule presence
in main module and re-use it.

In YANG 1.0, main module is not required to include all the submodules.
Some of the submodules can be included via another submodule. In such a
case, the include record is now injected also into the main module to be
simply available and to unify it with YANG 1.1. Such a record is marked
as injected and it is not printed.

On the other hand, YANG 1.1 requires all the submodules to be present in
main module. So the situation described above raises error.

Fixes #1353
diff --git a/src/schema_compile.h b/src/schema_compile.h
index 2dcc835..17f8105 100644
--- a/src/schema_compile.h
+++ b/src/schema_compile.h
@@ -115,7 +115,7 @@
  * @param[out] DUP Where to store the result.
  */
 #define DUP_STRING(CTX, ORIG, DUP, RET) if (ORIG) {RET = lydict_insert(CTX, ORIG, 0, &DUP);}
-
+#define DUP_STRING_RET(CTX, ORIG, DUP) if (ORIG) {LY_ERR __ret = lydict_insert(CTX, ORIG, 0, &DUP); LY_CHECK_RET(__ret);}
 #define DUP_STRING_GOTO(CTX, ORIG, DUP, RET, GOTO) if (ORIG) {LY_CHECK_GOTO(RET = lydict_insert(CTX, ORIG, 0, &DUP), GOTO);}
 
 #define DUP_ARRAY(CTX, ORIG_ARRAY, NEW_ARRAY, DUP_FUNC) \