MINOR: logs: use the new bitmap functions instead of fd_sets for encoding maps

The fd_sets we've been using in the log encoding functions are not portable
and were shown to break at least under Cygwin. This patch gets rid of them
in favor of the new bitmap functions. It was verified with the config below
that the log output was exactly the same before and after the change :

    defaults
        mode http
        option httplog
        log stdout local0
        timeout client 1s
        timeout server 1s
        timeout connect 1s

    frontend foo
        bind :8001
        capture request header chars len 255

    backend bar
        option httpchk "GET" "/" "HTTP/1.0\r\nchars: \x01\x02\x03\x04\x05\x06\x07\x08\x09\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"
        server foo 127.0.0.1:8001 check
diff --git a/src/standard.c b/src/standard.c
index 1dec561..a67948b 100644
--- a/src/standard.c
+++ b/src/standard.c
@@ -1546,13 +1546,13 @@
  */
 const char hextab[16] = "0123456789ABCDEF";
 char *encode_string(char *start, char *stop,
-		    const char escape, const fd_set *map,
+		    const char escape, const long *map,
 		    const char *string)
 {
 	if (start < stop) {
 		stop--; /* reserve one byte for the final '\0' */
 		while (start < stop && *string != '\0') {
-			if (!FD_ISSET((unsigned char)(*string), map))
+			if (!ha_bit_test((unsigned char)(*string), map))
 				*start++ = *string;
 			else {
 				if (start + 3 >= stop)
@@ -1573,7 +1573,7 @@
  * <chunk> instead of a string.
  */
 char *encode_chunk(char *start, char *stop,
-		    const char escape, const fd_set *map,
+		    const char escape, const long *map,
 		    const struct buffer *chunk)
 {
 	char *str = chunk->area;
@@ -1582,7 +1582,7 @@
 	if (start < stop) {
 		stop--; /* reserve one byte for the final '\0' */
 		while (start < stop && str < end) {
-			if (!FD_ISSET((unsigned char)(*str), map))
+			if (!ha_bit_test((unsigned char)(*str), map))
 				*start++ = *str;
 			else {
 				if (start + 3 >= stop)
@@ -1607,13 +1607,13 @@
  * completes.
  */
 char *escape_string(char *start, char *stop,
-		    const char escape, const fd_set *map,
+		    const char escape, const long *map,
 		    const char *string)
 {
 	if (start < stop) {
 		stop--; /* reserve one byte for the final '\0' */
 		while (start < stop && *string != '\0') {
-			if (!FD_ISSET((unsigned char)(*string), map))
+			if (!ha_bit_test((unsigned char)(*string), map))
 				*start++ = *string;
 			else {
 				if (start + 2 >= stop)
@@ -1636,7 +1636,7 @@
  * <stop>, and will return its position if the conversion completes.
  */
 char *escape_chunk(char *start, char *stop,
-		   const char escape, const fd_set *map,
+		   const char escape, const long *map,
 		   const struct buffer *chunk)
 {
 	char *str = chunk->area;
@@ -1645,7 +1645,7 @@
 	if (start < stop) {
 		stop--; /* reserve one byte for the final '\0' */
 		while (start < stop && str < end) {
-			if (!FD_ISSET((unsigned char)(*str), map))
+			if (!ha_bit_test((unsigned char)(*str), map))
 				*start++ = *str;
 			else {
 				if (start + 2 >= stop)