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
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]
disable automatic build of examples

except if in maintainer mode
don't resolve disk-device symlinks

* enable symlink resolving when mnttab points to somewhere in /proc or user
  or packager enables it manually
fix man-page build configuration
add device_canonical for resolved device_name

If, however, necessary to resolve a device path, the resolved fqpn is
stored in device_canonical attribute. Otherwise, device_canonical
contains the same value as device_name.
prove whether setvbuf or a fallback is available

XPG6 specifies setvbuf for configuring stdio streams buffering behavior.
When no setvbuf is available, check for existence of setlinebuf which
could be a reasonable fallback.
ensure buffers are reasonable flushed

When a reasonable way to configure stdio streams being line buffered,
configure them. Otherwise flush after all desired stats are printed.
change default logging behavior from check to no
Display new device_canonical field.

A new field has been added to the filesystem statistics in libstatgrab.
The device_canonical field holds the real device name after resolving
symlinks. The original device_name field remains unchanged and holds
whatever is given by the operating system. When device_name is not a
symlink both fields are the same.

Here's an example of where it's useful:

/dev/disk/by-uuid/ee2f048d-68f6-428a-a95a-c949d3c05d67 -> ../../sda2

In this case, device_name contains the left-hand side and
device_canonical contains "/dev/sda2".
Set logging to check with maintainer mode.

This fixes part of #54.
Enable logging check if --with-log4cplus is given.
Fix tests when using a VPATH build.

The problem is that App::Prove (or whatever it uses) doesn't chdir
to the directory before running the tests. So the relative include
path in the .t file is only valid if you're inside the single_threaded
or multi_threaded directories. Running the tests from there works
fine, but if you run it from the directory above the relative path
points to the wrong place and it breaks. This change uses an absolute
path so it works in both cases.

An alternative fix would be to modify the Makefile in tests to chdir
to each sub-directory before launching App::Prove, or if App::Prove
has a way of doing the chdir itself that'd also work.

Fixes #43.
Added option for Graphite-compatible output
A few fixes and style cleanups for graphite code.