19751 - Fix and centralize handling of boolean values for settings

In the past boolean values in the config files where parsed in a bespoke
manner by the config class and individual plugins.

This commit adds a str_to_bool method to the util class which gives us
a consistent way of dealing with boolean like strings.
19751 - Fix and centralize handling of boolean values for settings

This commit fixes Util::str_to_bool handling of TrueClass and FalseClass
parameters.
19751 - Fix and centralize handling of boolean values for settings

maint: fix activate agent logic
21251 - Windows absolute paths are not identified correctly

This commit allows paths to include the windows directory name
when checking if a path is absolute.
21251 - Windows absolute paths are not identified correctly

changelog
20714 - Remove the rpchelptemplate and helptemplatedir settings

This commit removes the rpchelptemplate and helptemplatedir
configuration settings. The logic for discovering a template's
path has now been moved to the Util class, which will firstly
check the config directory, then fallback to /etc/mcollective.
20714 - Remove the rpchelptemplate and helptemplatedir settings

changelog update
20506 - mcollective log backtrace does not include line numbers on windows

This commit changes how we parse caller and exception strings so that
line numbers are correctly displayed when logging in Windows.
20506 - mcollective log backtrace does not include line numbers on windows

changelog
21407 - mcollective config parser has problems with spaces before keys in server.cfg

Previously the config class would fail to parse configuration options
that started with whitespaces and would fail with "Unknown config
parameter key".

This commit strips the whitespaces from configuration keys and replaces
the error message with the easier to debug, "Unknown config parameter
'key'".
21407 - mcollective config parser has problems with spaces before keys in server.cfg

Changelog
(Maint) rubyw.exe is broken in ruby 1.9

Previously, the mcollective batch file when bundled into puppet, would
invoke rubyw to run mcollective. If mcollective were to ever use Ruby's
built-in process handling, e.g. %x, and attempt to read stdout/stderr of
a child process it would fail due to http://bugs.ruby-lang.org/issues/7239.

This commit just updates the batch file to invoke ruby.exe, which does
not have this problem, because ruby.exe is a console application and
always allocates a windows console.
Docs: Fix broken and outdated links in various places

Most of these were caught in a linkchecker run. The "next steps" links were
feedback from a user.
17667 - run() call in an agent can return incorrect Process::Status

Previously the guard thread used in the #shell class would cause a race
condition when it tried to reap the pid before the process was finished
executing which led to systemu setting the wrong value to $$.

We now only try to reap the pid in the thread spawned by systemu if the
parent thread is dead and the subprocess created by systemu is still
around. This should remove the race condition that causes Shell to
return incorrect return codes and also avoid the creation of zombie
processes.