parsers CHANGE redesign API of all the parsers

Simplify work with different inputs by introducing ly_in handler similar
to the printers' ly_out. The input handler can be used repeatedly and
also some input data manipulation functions are added.

Add new lys_parse() as a generic function using ly_in input handler. The
current API (lys_parse_* functions) was rewritten to be a wrapper of
the generic lys_parse().

Next to the unit tests for the parsers functions, also the similar tests
for printers functions are added.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c3d1f1b..9db7241 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -222,6 +222,7 @@
     src/tree_schema_free.c
     src/tree_schema_compile.c
     src/tree_schema_helpers.c
+    src/parser.c
     src/parser_yang.c
     src/parser_yin.c
     src/parser_stmt.c
@@ -251,6 +252,10 @@
     src/context.h
     src/tree.h
     src/tree_data.h
+    src/parser.h
+    src/parser_schema.h
+    src/plugins_exts.h
+    src/plugins_types.h
     src/printer.h
     src/printer_data.h
     src/tree_schema.h