introduce logging api and convert all library output to use it

 - multiple debug context calls lwsl_ err, warn, debug, parser, ext, client

 - api added to set which contexts output to stderr using a bitfield log_level

 - --disable-debug on configure removes all code that is not err or warn severity

 - err and warn contexts always output to stderr unless disabled by log_level

 - err and warn enabled by default in log_level

Signed-off-by: Andy Green <andy@warmcat.com>
diff --git a/lib/base64-decode.c b/lib/base64-decode.c
index 95d4ba4..3baab3b 100644
--- a/lib/base64-decode.c
+++ b/lib/base64-decode.c
@@ -41,6 +41,7 @@
 
 #include <stdio.h>
 #include <string.h>
+#include <private-libwebsockets.h>
 
 static const char encode[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 			     "abcdefghijklmnopqrstuvwxyz0123456789+/";
@@ -169,7 +170,7 @@
 		n = lws_b64_encode_string(plaintext[test],
 				      strlen(plaintext[test]), buf, sizeof buf);
 		if (n != strlen(coded[test]) || strcmp(buf, coded[test])) {
-			fprintf(stderr, "Failed lws_b64 encode selftest "
+			lwsl_err("Failed lws_b64 encode selftest "
 					   "%d result '%s' %d\n", test, buf, n);
 			return -1;
 		}
@@ -178,7 +179,7 @@
 		n = lws_b64_decode_string(coded[test], buf, sizeof buf);
 		if (n != strlen(plaintext[test]) ||
 						 strcmp(buf, plaintext[test])) {
-			fprintf(stderr, "Failed lws_b64 decode selftest "
+			lwsl_err("Failed lws_b64 decode selftest "
 					   "%d result '%s' %d\n", test, buf, n);
 			return -1;
 		}