Merge pull request #20 from 0xNaN/dev

Fix segfault and little refactoring in `watch_directory_tree`
Covering remove_unreachable_resources
Fixing a typo in a test
Removing useless comments
watch_directory_tree: enable recursion through its argument

Enable the recursive behavior through its dedicated
parameter ('bool_t recursive') rather than through
the global 'recursive_flag'.
watch_directory_tree: search for dir/simlinks only when recursive

When we don't want recursion we want simply to add the first
path so we can avoid to enter in the BFS.
extracting is_dir(const char *path)
extracting append_dir(const char *, const char *)

The purpose of append_dir is to complete a path adding to it a new
directory.
Also we can use it to ensure that a path has a traling slash, i.e :

  appending "b" to "a", generate "a/b/"

The function ensures that the return path has only *one* trailing
slash, i.e:

  appending "b///" to "a/" generate "a/b/"

but it doesn't ensure that the return is a valid path, i.e:

  appending "c//" to "a///b" generate "a///b/c/"

This should be a rare case since we work with real paths.
extracting append_file(const char *, const char *)

The purpose of append_file is to append a filename
to a path.
The function ensures that the path doesn't have
the trailing slash but it doesn't ensures that
the it is a valid path.