Don't close file descriptors we don't own.
Fix cf-serverd stat()'ing the file tree every second.

The real problem is that signals are ignored by the event loop if they
arrive between calls to select(). The Linux approach would be to use
pselect(), but this doesn't work on some other platforms, most of all
Windows.

So instead we use a different approach: Writing to a socket is safe to
do in a signal handler according to POSIX, so we do that and listen to
that socket in the select() call.

The approach has been tested on both Linux and Windows, and is
verified to work even when forcing the signal to arrive before the
select() call is entered.

As part of this fix, the stat() timeout has been raised to one minute,
so that we still check for file changes reasonably often.

Fixes issue #3479.
Redmine#1032 - makes readfile() more generic, able to read /proc, /sys files on Linux (based on Ted's work, insights from Bas)
Adding readfile() acceptance tests from Ted Zlatanov
Adding a file to readfile acceptance test, using 0 as maxsize for /proc and /sys files
contrib/cf-locate: add --help
Highlight the entire bundle in "full" mode, for redability
Body gets a "yellow" color
contrib/cf-locate: use Getopt::Long and add --color option
Merge pull request #1046 from tzz/tzz/nickanderson/feature/contrib/cf-locate-help

contrib/cf-locate: add --help
Redmine#3279: add storejson() function
cf-agent --bootstrap fails on Debian systems, because sys.workdir/inputs is a symlink to /etc/cfengine3. The bootstrap creates 'failsafe.cf' in /etc/cfengine3, but cf-agent complains that this sys.workdir/inputs is a symlink. Both must fail/complain or we accept symbolic link to a
directory.

This patch enable the last option. It will determine if the destination is a symlink to a directory and ```copy_from``` attribute ```type_check : false``` is set.  If both options are true the copy will be honoured.
Merge pull request #1041 from lpefferkorn/fix_cfreadfile

Redmine #1032 - makes readfile() more generic
Merge pull request #1050 from basvandervlies/cp_2_symlink_directory

cf-agent --bootstrap fails on Debian systems.
Tagging folders, not files.
Merge pull request #1038 from cduclos/acceptance-test-tagging

Tagging acceptance tests
Due to pull request https://github.com/cfengine/core/pull/1050 we have to add to` ``copy_from sync_cp```
 * type_check : true
Merge pull request #1051 from basvandervlies/fix_02_maintain_010_test

Due to pull request https://github.com/cfengine/core/pull/1050
Redmine#1032: fix 1-byte read issue
Merge pull request #1052 from tzz/tzz/1032-read-proc-and-sys-specially

Redmine#1032: fix 1-byte read issue
Merge pull request #1049 from tzz/feature/3279-storejson

Redmine#3279: add storejson() function