19105 - default_discovery_method and others isnt correctly handled by the RPC::Client

Previously we used settings like default_discovery_method before
actually initializing the settings and so they would be set to nil

This caused a few hard to detect issues like discovery being used for -I
discovery flags that supplied a specific host where normally it would
use this information as discovery data

This re-arranges things a bit to start the code Client early on in the
RPC client initialization
19146 - deprecate the 'stomp' connector in 2.2.x

The stomp connector cannot fully support direct addressing so ActiveMQ
and RabbitMQ specific connectors were added to fully support it on those
brokers.

The stomp connector thus does not really have a place anymore. Version
2.2.3 deprecated it and so we can now remove it for future production
releases
19141 - mco plugin package fails to build packages in 2.2.2

In the past the code generating the dependencies in the debian control
file was overly complicatd and prone to error.

This commit cleans up the dependency generation in the debian control
file, simplifying it and making it less prone to error.
maint: update changelog
19200 - Packager fails on Debian if plugin name includes an underscore

In the past creating packages on Debian would fail if the plugin name,
defined in the ddl, contained an underscore.

Underscores are now replaced with '-'.
19200 - Packager fails on Debian if plugin name includes an underscore

changelog update
19238 - discovery timeout in clients

While reworking the discovery system to be pluggable we inadvertantly
lost the ability for a rpc client to override the discovery timeout.

This is complex because there are many factors contributing to the
timeout in order of precedence:

  - someone specifically setting the timeout in a script
  - the command line and initial options given to the client
  - the ddl file of the discovery method

We should retain the specific intent even when changing discovery
methods mid script so this reworking ensures that happen while restoring
the ability for clients to set it specifically
19265 - Update vendored JSON for CVE-2013-0269

Update the vendored JSON gem to 1.5.5 for CVE-2013-0269
18663 - should be internationalized

Vendor the i18n gem at version 0.6.1 and update the gem spec to exclude
the vendored files and include the new dependency as a gem dependency
18663 - should be internationalized

Add basic i18n support to the logging system, locale information is
stored in $lib/mcollective/locales/en.yml - this location is not yet
configurable and we do not yet support setting your own locale.

At present the logging system supports logging standard messages:

   Log.logmsg(:PLMC1, "default message", :info, :version => "1.2.3", :name => $0)

This will parse a message from the local database that looks like:

   PLMC1.pattern: Started mcollective %{version} by ${name}

The locale database also support PLMC1.example and PLMC1.expanded which
would hold a sample error message and expanded text showing the
background for this message.

Logging of exceptions has been standardized:

  Log.logexception(:PLMC2, :error, :e => exception, :other => "data")

This will log the message in PLMC2 while interprolating %{error} into
the resulting text, other data will also be passed into the string

An application was added to support showing details on the error
messages and eventually the whole 'mco plugin doc *' functionality will
move into this application

   mco doc PLMC1

There is a new exception class called CodedError that can contain the
code for a error and supports logging itself using the log method on the
exception class.

We use this to ensure that all exceptions are logged when they get
raised and to provide some consistant UI around reporting of our own
errors.  Some classes have been updated to raise this directly while
others like the DDL one provide a helper to raise DDLValidationError
exceptions - which are now a subclass of CodedError

The runner and application plugins both understand the CodedError
classes and will show errors about them in a useful way.

A utility module - Translatable - has been added that can be used as a
mixin to log lines and exceptions

This commit updates a sprinkling of classes throughout to use messages,
by no means a exhaustive update more aimed to cover the major use cases,
we'll firm that up over time
maint: fix test failure
19265 - Update vendored JSON for CVE-2013-0269

Update Rakefile and release notes
19265 - Update vendored JSON for CVE-2013-0269

Update default config files for ActiveMQ connector instead
of removed stomp one.
Doc: note on data Vs. discovery plugins
maint: Various minor documentation updates
19181 - In the rpc app discovery should happen after validation

The RPC application has various different modes of behaviour like
receiving JSON in, reading txt files for node lists or just simply
forcing verbose discovery.

We therefore need to do a specific discover before calling the remote
agents which has the undesired side effect of taking 2 or 3 seconds
before you get an error message if you supplied incorrect arguemnts on
the CLI.

This commit adds a specific validation call before doing any discovery,
the validation will cause early errors if any
maint: it is not 2012 anymore, fix log entries
19146 - deprecate the 'stomp' connector in 2.2.x

Update documentation to favour the ActiveMQ connector and add a note
about the deprecation of the Stomp connector
19366 - error code collision on PLMC18 in ddl/base.rb

There was an inadvertant error code collision that resulted in a failure
when trying to interopolate the data.

Ideally we'd somehow test for this - no idea how to go about it though.

We could in theory on interprolation failure always retry once using
the default supplied arguments but this would lead to further confusion
as we would not know what code to show the user then, it's better to
just fail
maint: various small updates to getting started and configuration docs