string_ext: APIs changes + Fixes + New APIs

- Mod (CMakeLists.txt): Renamed binstr_to_bin to hexstr_to_bin according to API
	change

- Mod (string_ext):
	- New APIs: string_new(), string_new_from_str(), string_cat_cstr(),
	string_check()
	- Mod: string_set() params (added length specifier)
	- Fix: string_set() was freeing internal bytes from dst (object existence
	bad assumption)
	- Fix: string_cat(): dst->size was not updated correctly and bad string
	termination was causing the concatenation to fail
	- Fix: string_puts(): Dereference of str->bytes without any checks being
	done, could cause crash
	- Fix: str_strip(): Was not removing correctly trailing blanks, it would
	instead terminate the string in the middle as soon as there is a space
	- Renamed: binstr -> hexstr (binstr is semantically incorrect here)
Fix (data/hashtable): string_set() according to API change
Fix (data/list): Small memory leak (data_ops struct)
Mod (data/filemap): Added compilation define for faster filemap creation
data/wordlist optimisation

- Mod (data/wordlist):
	- _wlist_insert_word(), word hash added as it is faster for comparison
	- wlist_build_from_str(): Small optimisation by check first char
Mod (inc/fall4c.h): Added some forgotten headers
Fix: Better WIN32 support through macros
Fix: Forgotten prototype + MSG type
string_ext: 3 New functions + Better code for str_get_columns()

New functions:
- get a line from str                :
    char *str_get_line (char *str, int len, char **endptr);
- return a repeated string of 'byte' :
    char *str_repeat_byte (int byte, int n_repeat);
- return a repeated string of 'str'  :
    char *str_repeat_str (char *str, int len, int n_repeat);
Improve fgetl() and file_get_size()

* fgetl() now properly take into account "\r\n" and "\n" new lines

* file_get_size() use fstat() as the main mean to get file size,
    otherwise it uses old ftell() method
Fix (string_ext): A special case in str_strip() where idx_str == len_str)
Add: .gitignore for keeping the git a bit cleaner
Fixes in data/list and data/queue API change to use data/data_ops

* Fixes in data/list:
- list_append_data() and list_prepend_data() : properly update next and
      prev and removed useless code and comments
- _list_remove_node():
    - head and tail were node updated accordingly when *node == tail or
      *node == head, this would cause possible double frees() in code
      using this function
    - free (node) would make any function crash since node is a (struct
      list_node **)
    - list size is properly kept no lower than 0
- list_remove_data(): more readable code

* data/queue API change

queue now use data_ops for better APIs and keeping data coherence.
Fix (util): debug_message() works properly + dump() properly bounded

* debug_message() would failed in conditionnal statements
* dump() was not properly bounded
Add: convert which includes all converting functions between types and data
Merge from github repository