20388 - Mcollective should have sane defaults for configfiles on windows

This commit adds sane defaults for the server.cfg and client.cfg files.
The other configuration files can then be specified in those two files.
As these merely add defaults, any commandline flags for configfile
location will override the default.
20388 - Mcollective should have sane defaults for configfiles on windows

changelog
maint: update testing for windows

Add some special handling and exclusions for windows based machines
maint: improve new line detection so tests pass on windows and unix
16909 - Tests spam console with sh: rpm: not found on Debian

This commit removes the 'rpm not found' spam when running tests on
debian.
16909 - Tests spam console with sh: rpm: not found on Debian

This commit removes the 'rpm not found' spam when running tests on
debian.
16909 - Tests spam console with sh: rpm: not found on Debian

This commit removes the 'rpm not found' spam when running tests on
debian.
maint: fix test that failed when the testing machine did not have mcollective installed
17930 - mcollective: direct addressing mode when using reply queue

The fire_and_forget mode of requests were not made direct_request
aware while adding the direct addressing communiations mode.

The result of this was that setting :process_results => false and
doing direct requests would result in the request always being broadcast
and not sent out only to the nodes supplied via the discovery layer

This addresses that and adds tests around this method
17930 - mcollective: direct addressing mode when using reply queue

Also handle the case where a discoverer forces direct mode but no
discovery has been done yet
17930 - mcollective: direct addressing mode when using reply queue

And handle the case where the 'mc' discovery method is used and specific
node information is supplied that is not a regex
maint: setup travis ci for PR testing
17034 - MCollective Async Result Handling doesn't work as expected with RabbitMQ

In order to process async style requests where the request has a reply
that indicates a different destination the request must have correct
reply-to headers set.

Previously the connector did not set this when a custom reply-to address
was specified in the message, this commit fixes that.
17034 - MCollective Async Result Handling doesn't work as expected with RabbitMQ

Provide test coverage and changelog
19367 - Missing StringIO require

require stringio in lib/mcollective.rb instead
19367 - Missing StringIO require

update changelog
Revert "17930 - mcollective: direct addressing mode when using reply queue"

Revert fixing this in 2.2.x as it depends on work done that brings
in behaviour changes
20594 - RPC::ActionRunner#load_json_results should return {} for empty/non parsing files

the JSON lib now returns nil instead of raising an error on parse fail
this commit adds handling for that so we always behave in a consistent
manner
20661 - Util#versioncmp fails in some cases

The versioncmp helper failed to correctly compare 1.2.10 and 1.2.8
but this has already been fixed in Puppet where we got our logic
from first so we're just grabbing whats in Puppet now to resolve
this
20592 - Release 2.2.4

- Bump version and stop using deprecated gem package task helper
- Update release notes and various docs