Fix setting the path in directories

The constructor would update the index which is redundant and
the setPath method would not use the sanitized path.
test: Change creating a dir with a path not starting by /
Allow to choose if dirs should be cacheable or not

This is done in the constructor and might be helpful when, for
example, a user is traversing a directory tree in search for
a certain file but does not want each directory to be cached.
test: Add test an uncacheable directory
Remove compact operation when removing a dir

It makes no sense to try to compact a directory that no longer exists.
Add (symbolic) link creation
Add a method for checking if a file/dir is a link
test: Add unit test for links
Make checkIfPathExists consider also the link type

For files that are in fact links.
Reimplement isLink to simply check the file type
Add constructor from pointer to RadosFsDir
Add constructor from pointer to RadosFsFile
Output the link target in checkIfPathExists

This is done when the path is a link in order to take advantage of
the fact that the link target is retrieved anyway (which might save
an extra call afterwards).
Add and set a link target variable to RadosFsInfo

This will be used to delegate certain functions that should
be applied to the target when a file/dir is a link.
Add a method to get the a link target's path
test: Test the link target's path
Delegate isFile() to target is file/dir is a link
Delegate isDir() to target is file/dir is a link
Fix bug when making a dir with a file in the path

If the file was the immediate parent in the directory's path
and the dir was created with the mkpath option, it would create
the parent dir using the file name.
test: Create a dir with a file path as the parent