fs_scan: get info about parent dirs when performing partial_scan. code reorg, cleaning and reformatting.

When performing a partial scan (e.g. /mnt/fs/dir/foo), the
information for parent dirs (e.g. /mnt/fs/dir) was not added
to the database - in particular, parent names - which avoided
to build the path of entries from the NAMES table.

Code reorg and cleaning: split long functions to smaller ones,
factorize some parts of the code. GNU-style parenthesing.
Improved inode and name cleaning after partial scan or partial diff. Fix tests 108 (rename) and 109 (hardlinks).

At the end of a scan, when an entry from ENTRIES table has no longer a path in NAMES,
it means all its hardlinks have been removed, so it can be cleaned.
This fixes "n/a" paths displayed by "rbh-report -D".

This issue with diff is it only update fields that changed,
without updating the NAMES table. Thus the cleaning of unseen paths
results in emptying NAMES. This is temporarly fixed by always
displaying/updating path. A better solution could be to separe
diff display mask and update mask.
diff and scan: distinguish diff mask from display mask.
Added new flavors for test 106 (diff).