plugins FEATURE load external plugins as part of plugins initiation

Use default plugins directories or the directories provided via
environment variable and besides the internal types and extensions
plugins load also the plugins available in those directories.

The default directories (<INSTALL LIBDIR>/libyang/extensions and <INSTALL
LIBDIR>/libyang/types byt default) can be set using cmake and then they
are available via a new configuration header cmake_config.h. Also some
other cmake information regarding the plugins are placed there.
diff --git a/src/config.h.in b/src/config.h.in
new file mode 100644
index 0000000..ab861bd
--- /dev/null
+++ b/src/config.h.in
@@ -0,0 +1,26 @@
+/**
+ * @file config.h
+ * @author Radek Krejci <rkrejci@cesnet.cz>
+ * @brief Various variables provided by cmake and compile time options.
+ *
+ * Copyright (c) 2021 CESNET, z.s.p.o.
+ *
+ * This source code is licensed under BSD 3-Clause License (the "License").
+ * You may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://opensource.org/licenses/BSD-3-Clause
+ */
+
+#ifndef LY_CONFIG_H_
+#define LY_CONFIG_H_
+
+/*
+ * Plugins
+ */
+#define LYPLG_SUFFIX "@CMAKE_SHARED_MODULE_SUFFIX@"
+#define LYPLG_SUFFIX_LEN (sizeof LYPLG_SUFFIX - 1)
+#define LYPLG_TYPE_DIR "@PLUGINS_DIR_EXTENSIONS@"
+#define LYPLG_EXT_DIR "@PLUGINS_DIR_TYPES@"
+
+#endif /* LY_CONFIG_H_ */