Fix PIPD_IS_FULL.

PIPD_IS_FULL wasn't correctly identifying pipd being full which
resulted in the add_pid_to_pids_in_proc_dir function walking off
the end of the allocated memory structure. This caused the breakage
seen in #38.

The problem was found using the Solaris watchmalloc library.
Fix compiler warning created in commit dd23b3b.

  process_stats.c:189:6: warning: comparison of integers of different signs: 'unsigned long' and 'ssize_t' (aka 'long') [-Wsign-compare]
          if( PIPD_IS_FULL( pipd, sys_page_size ) ) {
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  process_stats.c:182:95: note: expanded from macro 'PIPD_IS_FULL'
  #define PIPD_IS_FULL(pipd,size) (offsetof(struct pids_in_proc_dir_t, items[(pipd)->nitems+1]) > (size))
                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
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