CLEANUP: wurfl: reduce exposure in the rest of the code

The only reason wurfl/wurfl.h was needed outside of wurfl.c was to expose
wurfl_handle which is a pointer to a structure, referenced by global.h.
By just storing a void* there instead, we can confine all wurfl code to
wurfl.c, which is really nice.
diff --git a/include/import/wurfl.h b/include/import/wurfl.h
deleted file mode 100644
index c59da34..0000000
--- a/include/import/wurfl.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _IMPORT_WURFL_H
-#define _IMPORT_WURFL_H
-
-#include <wurfl/wurfl.h>
-
-int ha_wurfl_init(void);
-void ha_wurfl_deinit(void);
-
-typedef char *(*PROP_CALLBACK_FUNC)(wurfl_handle wHandle, wurfl_device_handle dHandle);
-
-enum wurfl_data_type {
-	HA_WURFL_DATA_TYPE_UNKNOWN = 0,
-	HA_WURFL_DATA_TYPE_CAP = 100,
-	HA_WURFL_DATA_TYPE_VCAP = 200,
-	HA_WURFL_DATA_TYPE_PROPERTY = 300
-};
-
-typedef struct {
-	char *name;
-	enum wurfl_data_type type;
-	PROP_CALLBACK_FUNC func_callback;
-	struct ebmb_node nd;
-} wurfl_data_t;
-
-#endif
diff --git a/include/proto/wurfl.h b/include/proto/wurfl.h
new file mode 100644
index 0000000..a238184
--- /dev/null
+++ b/include/proto/wurfl.h
@@ -0,0 +1,7 @@
+#ifndef _PROTO_WURFL_H
+#define _PROTO_WURFL_H
+
+int ha_wurfl_init(void);
+void ha_wurfl_deinit(void);
+
+#endif
diff --git a/include/types/global.h b/include/types/global.h
index 1e8caba..9f069ad 100644
--- a/include/types/global.h
+++ b/include/types/global.h
@@ -36,10 +36,6 @@
 #include <import/51d.h>
 #endif
 
-#ifdef USE_WURFL
-#include <import/wurfl.h>
-#endif
-
 #ifndef UNIX_MAX_PATH
 #define UNIX_MAX_PATH 108
 #endif
@@ -222,7 +218,7 @@
 		struct list patch_file_list; /* the list of WURFL patch file to use */
 		char information_list_separator; /* the separator used in request to separate values */
 		struct list information_list; /* the list of WURFL data to return into request */
-		wurfl_handle handle; /* the handle to WURFL engine */
+		void *handle; /* the handle to WURFL engine */
 		struct eb_root btree; /* btree containing info (name/type) on WURFL data to return */
 	} wurfl;
 #endif
diff --git a/src/haproxy.c b/src/haproxy.c
index 222ee20..80d5030 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -114,6 +114,10 @@
 #include <proto/ssl_sock.h>
 #endif
 
+#ifdef USE_WURFL
+#include <proto/wurfl.h>
+#endif
+
 #ifdef USE_DEVICEATLAS
 #include <import/da.h>
 #endif
@@ -122,10 +126,6 @@
 #include <import/51d.h>
 #endif
 
-#ifdef USE_WURFL
-#include <import/wurfl.h>
-#endif
-
 /*********************************************************************/
 
 extern const struct comp_algo comp_algos[];
diff --git a/src/wurfl.c b/src/wurfl.c
index 0f5ce2d..18723a6 100644
--- a/src/wurfl.c
+++ b/src/wurfl.c
@@ -8,10 +8,12 @@
 #include <proto/log.h>
 #include <proto/proto_http.h>
 #include <proto/sample.h>
+#include <proto/wurfl.h>
 #include <ebsttree.h>
 #include <ebmbtree.h>
-#include <import/wurfl.h>
 
+#include <wurfl/wurfl.h>
+
 
 #ifdef WURFL_DEBUG
 inline static void ha_wurfl_log(char * message, ...)
@@ -32,6 +34,22 @@
 
 #define HA_WURFL_MAX_HEADER_LENGTH 1024
 
+typedef char *(*PROP_CALLBACK_FUNC)(wurfl_handle wHandle, wurfl_device_handle dHandle);
+
+enum wurfl_data_type {
+	HA_WURFL_DATA_TYPE_UNKNOWN = 0,
+	HA_WURFL_DATA_TYPE_CAP = 100,
+	HA_WURFL_DATA_TYPE_VCAP = 200,
+	HA_WURFL_DATA_TYPE_PROPERTY = 300
+};
+
+typedef struct {
+	char *name;
+	enum wurfl_data_type type;
+	PROP_CALLBACK_FUNC func_callback;
+	struct ebmb_node nd;
+} wurfl_data_t;
+
 static const char HA_WURFL_MODULE_VERSION[] = "1.0";
 static const char HA_WURFL_ISDEVROOT_FALSE[] = "FALSE";
 static const char HA_WURFL_ISDEVROOT_TRUE[] = "TRUE";