14239 - RPC::Client#compound_filter does not correctly add to options

The filters in the main protocol hash are all arrays and calls to
Client#compound_filter and Client#fact_filter etc should append to those
arrays.  Compound filter did not and so setting the filter from the RPC
client just did not work.

We now append to the array instead
13900 - Release 2.0.0

- Update Changelog and Release notes
- Bump version number
- Remove mentions of pre 2.0.0 version in the doc ie. 'since version 0.3...'
- Add debian getting started docs
- Some white space fixes to bin scripts
- Update some documentation to reflect changes to CLI tools
maint: fix formatting of release notes
14292 - Move M::RPC::DDL to M::DDL

In the past the DDL was used only for agents, since the new packaging
system has been introduced all plugins could potentially have DDLs.

We are also adding new plugins for Data that will need DDLs to describe
the data they return and their input to facilitate online help etc

This commit moves the DDL class to MCollective::DDL and adds deprecation
tooling so that invocations of the old MCollective::RPC::DDL wont break
but warnings will be logged.

Also update all uses of MCollective::RPC::DDL to the new name
14292 - Move M::RPC::DDL to M::DDL

maint: silence some "parenthesize argument(s) for future version"
warnings in spec tests on ruby 1.8.5
maint: fix typo in release notes
14293 - DDL class should be able to find and load DDLs for all plugin types

The DDL was traditionally only used for agents, this is changing to
include all plugin types.

This commit gives the DDL class the ability to load other types of DDL
and add some safety checks into the methods that are clearly agent
specific, eventually these should move into sub classes of the DDL so
that the validations etc for various types of plugin are kept seperate
to keep things maintainable
14277 - Upgrade from 1.2.1-1 fails

Previously the debian packages declared that they depend on <= version
of the common deb, this is wrong as all the packages have to be at the
same version.

Additionally we also mark that the common package breaks and replaces
previous packages to ensure this dependency is in effect immediately and
to prevent the erb file that moved between different packages causing
problems when upgrading from 1.2.1
14277 - Upgrade from 1.2.1-1 fails

Update changelog
14254 - Create pluggable data sources usable in agents and discovery

This adds a new plugin type called Data with associated tooling to load
them, create DDLs for them and allow the plugin packager to package
them.

These plugins provide a standard means to query information about the
running system like the existance of a user etc, these will be usable in
agents and eventually in the discovery system and clients.  Users can
write their own data plugins thus extending discovery.

An example File Stat data source is included, to use the File Stat data
source in a agent you simply do:

    reply[:result] = Data.fstat("/etc/passwd").size

The data source can only return String, Numeric and Boolean data, the
the result object in the plugin enforce this and the result itself
behaves like a hash so multiple items can be returned like for a plugin
you might return arch, versions etc.  Restricted to these types to be
compatible with JSON which will become the transport medium for
mcollective in future.

These data sources will be exposed to discovery from the client where a
user might write a compound discovery statement like:

    -S "fstat('/etc/passwd').mtime_age < 3600"

This will let users discover machines where the password file was
changed less than a hour ago.

This will allow us to extend discovery with any information like using
Augeas or really any other information availble on the nodes.  I
anticipate that we'll ship ones to query sysctl, fstat and a few other
common needs.

The data sources have activate_when block support just like agents for a
confine system and the DDLs define input, output, ttl and other standard
metadata.  We validate the query prior to calling the lookup function
based on the DDL for safety.

The DDL system can now handle DDL files for different types of plugin
and supports different ERB templates to produce help for each type of
plugin.  There is now a conventional location for these erb files - the
directory the configuration file is in by default - and this is
configurable in the config files.
14254 - Create pluggable data sources usable in agents and discovery

Rewrite scanner and parser to handle functions, arguments and output
properties.

Update the security base class to use the new methods to validate
filters and adjust option parser to use the new helpers for creating the
call stack
14254 - Create pluggable data sources usable in agents and discovery

Add client side validation of data functions and expected return values
14254 - Create pluggable data sources usable in agents and discovery

- Fixed String comparison
- Removed ability to do < and > comparisons with Strings and Booleans
- Changed function hash keys to strings from symbols
- Removed exits from parser
- Fixed Scanner regex that identifies correct function statements
- Updated Scanner and Parser spec tests
14254 - Create pluggable data sources usable in agents and discovery

While checking if a data plugin should be activated we now catch
exceptions and disable the plugin if anything goes wrong in the
activate? block

The rpcutil agent and inventory application will now report and show
installed data plugins for a node

Add documentation for the new plugin type and fix some other related
documentation
14254 - Create pluggable data sources usable in agents and discovery

- Moved matcher methods from Util to Matcher
- Added double quote parsing to matcher
- Added != operator to language (works on regexes)
14496 - ActiveMQ :connect_timeout should default to 30 to allow IPv4 fallback to work in multi homed nodes

Prior to this the default connect timeout was 5 seconds, this means if
the underlying socket does not get established within 5 seconds the
attempt will be stopped and the next in the pool will be tried.

In the case of a dual homed host where the IPv6 address is not reachable
but the IPv4 one is the underlying socket connection will first try the
v6 address and after some time try the v4 address.

By increasing the initial connect timeout we allow this v6 to v4
fallback to happen before timing out the attempt.

Also added this setting to the default stomp connector
14300 - mcollective gem dependencies not set

The mcollective-client gem did not have a stomp dependency set, this
commit adds that.
14547 - spaces should be allowed before and after comparison statements in discovery language

Previously comparison statements could not contain white spaces before
and after operator symbols.

Statements can now have white spaces before an dafter operator symbols.
14545 - Data inputs should be optional

If the input is marked as optional and the input argument was not
supplied we now bypass validation via the ddl
14545 - Data inputs should be optional

In the past functions without any parameters returned a function hash
with and empty string as parameter.

Functions without parameters now return a function hash with nil as
parameter.