resolve symbolic links on device names

If a device name is a link, resolve the link and compute canonical path
name from it. Some modern systems use device-independent identifiers
with a symlink to the physical device to avoid different order of registering
during boot causes trouble.
eliminate some -Wunused-result warnings
add strlcat/strlcpy checks

Without them tools.h will always pretend sg_strlcat should be strlcat
which causes redefinition warnings. Remove libstatgrab-wide export of
internal strlcat - helpers sg_log_init is integrated and the routines
are internal only now.
fix compiler warning

This fix is to eliminate:

    full_stats.c:134:10: warning: passing argument 1 of 'get_testable_functions' from incompatible pointer type
    full_stats.c:134:68: warning: incompatible pointer types passing 'unsigned long *' to parameter of type 'size_t *' (aka 'unsigned int *') [-Wincompatible-pointer-types]
fix unused variable for logging ...

    process_stats.c:772:11: warning: unused variable 'failing_pid'
    process_stats.c:1070:10: warning: variable 'p' set but not used [-Wunused-but-set-variable]