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
19734 - Make default port 61613 in connector plugins, to match convention/docs

Docs and comments for the ActiveMQ connector stated that the port would default
to 61613 (the closest thing to a standard Stomp port we've been able to find) if
unspecified; instead, it defaults to 6163. This commit changes the default port
to match what we said, and does the same in the RabbitMQ connector.
19734 - Make default port 61613 in connector plugins, to match convention/docs

changelog
Docs: New server configuration reference

This page describes all of the server settings most users will need, including
info about the connector and security plugins.
19752 - Friendly and informative errors when there's no libdir

There is no default libdir so when users do not set it they get
very unfriendly errors from File.exist etc which does not really
say what is wrong.

This commit adds a better error message when libdir is not set
19827 - Application#halt does not work if discovery data is supplied

Prior to version 2 the discovery situation was real simple, discovery
time == 0 means there were no discovery done at all.

Since version 2 things are a lot more complex as discovery time can be
zero if someone supplied specific discovery data either through --nodes,
or -I or through the API.

The halt() helper needed updating for the post 2 world and unfortunately
this means the behaviour also had to change slightly

it would exit with 0 when no discovery done but any responses were
received, effectively masking situations with no discovery but with some
failures.

This refactors the code and changes the meaning of 0 slightly in the
case of no discovery to: no discovery were done and > 0 responses were
received, all ok.

Thus in cases where discovery isn't done for whatever reason you still
get correct exit codes in the case where any results were failures.
19694 - Remove plugin.discovery.timeout

The plugin.discovery.timeout option used to be useful a long time
ago as a way to influence default discovery time.

It's not been used for this for a long time and now doesn't really
change anything in a meaningful way, this commit removes this feature
19673 - remove topicprefix, queueprefix, and topicsep

The old stomp connector tried to be configurable by letting you
pick how a target like /topic/foo.bar would look using the topicprefix
and topicsep options.  Ditto for queues using queueprefix.

We've come to the conclusion that a generic stomp connector will just
never work well and removed that connector.  This commit removes these
unused settings too
19694 - Remove plugin.discovery.timeout

Remove another example from the docs that reference this option we've
removed
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
20282 - Puppet agent; nodes file with spaces

Identities can only match /^[\w\.\-]+$/ which is enforced in the config
class.

The flatfile discovery method exist so that someone can put a bunch of
identities in a file and use that for discovery, thus the identities
have to adhere to the same rules but this check was never done which in
some circumstances could result in incorrect 'No responses from' errors
etc.

This commit enforces the same check when reading flatfiles resulting in
an error to the user when they have an error in their file
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
20059 - Data matcher logs bad errors when query returns nil

In the past when a data query field did not get assigned a value it
will default to nil which would log an non descriptive error when it gets
compared.

Data query fields that default to nil will now immediately return false,
meaning that all unset query values will evaluate to false.
20059 - Data matcher logs bad errors when query returns nil

changelog update
maint: Update a few orphaned links to marionette-collective.org

These links still live but the site's folded into puppetlabs.com
so they were 404. This commit updates the text to point at the distro-specific
dependencies repo and changes the DepRPMs link anchor to point at
yum.puppetlabs.com.
maint: update testing for windows

Add some special handling and exclusions for windows based machines