MEDIUM: 51Degrees code refactoring and cleanup

Moved 51Degrees code from src/haproxy.c, src/sample.c and src/cfgparse.c
into a separate files src/51d.c and include/import/51d.h.

Added two new functions init_51degrees() and deinit_51degrees(), updated
Makefile and other code reorganizations related to 51Degrees.
diff --git a/README b/README
index cda6fd9..701207f 100644
--- a/README
+++ b/README
@@ -282,13 +282,13 @@
 
     51degrees-data-file           path to the pattern or trie data file
     51degrees-property-name-list  list of 51Degrees properties to detect
-    51degrees-property-seperator  seperator to use between values
+    51degrees-property-separator  separator to use between values
 
 The following is an example of the settings for Pattern.
 
     51degrees-data-file '51D_REPO_PATH'/data/51Degrees-Lite.dat
     51degrees-property-name-list IsTablet DeviceType IsMobile
-    51degrees-property-seperator ,
+    51degrees-property-separator ,
 
 HAProxy needs a way to pass device information to the backend servers. This is
 done by using the 51d converter, which intercepts the User-Agent header and
@@ -307,7 +307,7 @@
 named anything. The User-Agent header is passed to the converter in
 req.fhdr(User-Agent). 51d( ) invokes the 51degrees converter. It can be passed
 up to five property names of values to return. Values will be returned in the
-same order, seperated by the 51-degrees-property-seperator configured earlier.
+same order, seperated by the 51-degrees-property-separator configured earlier.
 If a property name can't be found the value 'NoData' is returned instead.
 
 The free Lite data file contains information about screen size in pixels and