flist.h: change node structure

    * Add the parent list to the node structure. Usefull to keep it in memory
    * when using add_after and add_before to know if has to update the tail or
    * head of the current list.
flist.c: multiple fixes on add_* functions

    * create_node now takes the list as parameter
    * add now correctly add at the beggining when index = 0, and the end when
      index = length
    * add_last now correctly update head if it was NULL
    * add_first now correctly update tail if it was NULL
    * add_after now correctly update tail if the new node was added after the
      current tail
    * add_before now correctly update head if the new node was added before the
      current head