plugins CHANGE redesign lists of internal extension/type plugins

Prepare the lists of plugins for support of external plugins. Instead of
a statically allocated array, change the API to functions encapsulating
accessing and manipulation with the lists and plugins inside.

So far the lists still contain only the internal plugins, loading
external plugins will be added in a separated commit.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 61fce57..d367f5f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -133,6 +133,7 @@
     src/printer_yang.c
     src/printer_yin.c
     src/printer_tree.c
+    src/plugins.c
     src/plugins_types.c
     src/plugins_types_binary.c
     src/plugins_types_bits.c
@@ -162,6 +163,10 @@
     src/in.h
     src/parser_data.h
     src/parser_schema.h
+    src/plugins.h
+    src/plugins_exts.h
+    src/plugins_exts_compile.h
+    src/plugins_exts_print.h
     src/plugins_types.h
     src/out.h
     src/printer_data.h