Updated pkg-config file
Move CUnit tests
Rewrite container data structure related files

- Change API
  - Add possibility to choose if data must be copied or not
  - Remove (temporarily) container_cmp declaration since it's not very
    useful, and not tested
- Use stdint.h types and stdbool.h bool type
- Translate comments in english
Types.[ch] refactoring

- Use stdint.h and stdbool.h types
- New functions type_exist and types_initialized
- Comments improvements
iterator.[hc]: Use C99 types
error.[ch]: Use C99 types
funcs.[ch]: Use C99 types
Delete src/test.c
Fix a bug in type_sizeof

Error function was called with one missing argument.

+ use size_t instead of uint32_t for size variables
container_set: detect errors before freeing data

It avoid freeing container data and then saying "oh, there is not enough
space to allocate memory for new data"
Add unit tests for container
Refactoring of almost all the code

Global changes:
  - all types and functions are now prefixed with 'gds_'
  - comments translated to english
  - a lot of comments added
  - copyright updated

Core changes:
  Funcs list:
  - funcs.h renamed to func_list.h
  - funcs.c renamed to func_list.c
  - typedef gds_func_ptr_t moved in its own file func_ptr.h
  - typedef gds_funcs_t removed, gds_func_list_node_t * is used
  - gds_func_t members are now in gds_func_list_node_t
  - gds_func_t structure and related functions removed
  Types:
  - type_t doesn't contain data_size anymore, 'alloc' function is now
    used to copy data instead of memmove
  - gds_type_sizeof function removed
  Iterators:
  - they don't need a registered type anymore, they use three functions
    pointers for basic iterators operations reset, step and get
  - add the possibility to store custom data, which is passed to all
    three functions named above.
  - functions gds_it_* renamed to gds_iterator_*
  Others:
  - basic_types.h removed (stdint.h and stdbool.h types are used
    everywhere)
  - new foreach.h that provides a foreach macro to be used with
    gds_iterator_t
  - new logging system (log.h), used in replacement to error.h (removed)

Data structures changes:
  - API is more consistent now, and there is a new feature for each data
    structure. It's the possibility to tell to make a copy of data
    passed before saving it in the data structure (set), or before
    returning it (get). With this comes the possibility to tell if you
    want to free stored data or not when an element is deleted (e.g. a
    node in a list) or replaced by new data.
    All data structures are concerned. It includes:
      - Singly linked list
      - Stack
      - Queue
      - Deque
      - Double linked list
      - Hash map
  - Hash map implementation is hidden, and there are iterators

Unit tests:
  - new unit tests for slist_node, slist, dlist_node, dlist and stack
Add two red-black tree data structures.

One which needs less memory but needs more time (gds_compact_rbtree),
and the other which needs a little bit more memory but needs less time
(gds_rbtree).
Unit tests in t/cunit.
rbtree benchmarks
New callbacks.h file

Replacement types for most gds_func_ptr_t
Low-level lists, gds_iterator_get and boolean flags

Low-level singly-linked list helper functions in ll_slist.h/ll_slist.c.
Used by gds_slist_t and stack_t.

gds_iterator_get doesn't take a copy_data parameter anymore, data is
always returned as is. This allows low-level data structures to provide
iterators.

free_data and copy_data parameters are useless, they have been removed.
Fix rbtree bench for eina: data was not freed
New function gds_compact_rbtree_values

Return a singly linked list of values contained in red-black tree
Source tree review

- Move all headers into new include/ directory
- Move types.c and func_list.c out of core/ directory
Remove debug code in t/cunit/slist.c