headers MAINTENANCE headers/include cleanup

- add missing extern "C" in some of the public headers for use in C++
- includes cleanup and fix ordering
diff --git a/src/parser.h b/src/parser.h
index fcdc5dc..0ef7088 100644
--- a/src/parser.h
+++ b/src/parser.h
@@ -15,8 +15,15 @@
 #ifndef LY_PARSER_H_
 #define LY_PARSER_H_
 
+#include <stdio.h>
 #include <unistd.h>
 
+#include "log.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /**
  * @brief Parser input structure specifying where the data are read.
  */
@@ -155,4 +162,8 @@
  */
 void ly_in_free(struct ly_in *in, int destroy);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LY_PARSER_H_ */