Introduce UnexpectedError to handle non-fatal failures.

The error message is printed to stderr, and the function does not exit.
Fix linking after introduction of Unexpected Error
Handle return value from various C library and system calls
in cf-monitord and documentation tools.
Handle return values from chmod/chown/chdir
Handle parse errors in scanf calls.
Handle error code from fgets.

Also note that fgets should receive the size of the buffer including the
null terminator (ie writes num-1 bytes and sets the null terminator).
Merge pull request #293 from vohi/squash_warnings

Silence compiler warnings (esp on Ubuntu 12) by handling return codes from various system and C standard-library function calls. In most cases, no action taken other than logging the problem with CfOut or UnexpectedError.
Implement automatic discovery and bootstrap for cf-agent.

cf-agent discovers policy servers using Avahi implementation of Zeroconf protocol
at runtime using dlopen.

If a single hub is discovered cf-agent will automaticaly bootstrap to it.

If there's more than one hub discovered cf-agent will print a message listing
available hub and ask user to manualy bootstrap to a proper IP address using
--bootstrap --policy-server <right IP address> command line option.

To use automatic bootstrap --bootstrap/-B command line option is required without
specifying the IP address.
Implement generation of Avahi configuration file.

Add new command line option to cf-serverd -A. cf-serverd executed
with this option will generate Avahi configuration file in
/etc/avahi/services and restart avahi-daemon to make policy server
discoverable over the network.
Register atexit function to close loaded library.
Check if avahi is installed on the machine while running configure.
Use generic linked list for storing information about found hosts.
Check if two hosts found have the same hostname.
General code cleanup.

Remove unused function isIPv6.

Remove unused structure.

Fix definition of HostProperties structure.

Move PrintList function to public header.

Remove unused definitions of functions.

Replace printf functions with CfOut.

Fix indentation.

Remove error string from CfOut messages.

Remove unused variable 'tried'.

Change output type from cf_inform to cf_reporting.

Code cleanup.

Use ListIteratorData instead of direct dereferencing if iterators.
Search for env variable to find avahi library.

If avahi is installed in non-standard location use env variable
AVAHI_PATH to specify location of libraries i.e.:

AVAHI_PATH=/lib/libavahi-client.so ./cf-agent -B

If not specified cf-agent will look for libraries in default locations.
Add unit test for automatic bootstrap.

Test cases covered:

1. No hubs found.
2. One hub found.
3. Multiple hubs found.
4. Avahi error occured.