Implement contain pattern

Cleanup the anchor pattern and replace with contain.
Make indentation of init params uniform

Readability/style change only.
Fix client package name var, add server package

Previously $client_package_name was used in init.pp but $client_package
was used in client/install.pp. Fix that.

Also add a $server_package param.
Add $mcollective::server_package parameter

This allows us to specify the name of the package from which mcollective
server can be installed.
Expose ssl_client_certs_dir setting

Because it's not always going to be /etc/mcollective/clients. It just
isn't.
Add confdir param

Because again, we can't just assume that /etc/mcollective is where all
the config files go.
Propogate $mcollective::configdir

Remove further hard-coding of /etc/mcollective
Add callerid param to mcollective::user

Because sometimes the callerid that should be used is not the same as
the username.
Pass through callerid to certname for connector
Replace facts.yaml pattern with cron job

Because there is no way to iterate over all possible mutable facts, and
it's better to refresh more frequently than Puppet may run.
Besides which, dynamic information which SHOULDN'T change every Puppet
run (like uptime) SHOULD still be available to use in filters. It's
difficult/impossible to achieve that with a file/template based
Puppet-generated yaml file.

Note that this was tested against PE, but written in a way that should
be agnostic to PE/POSS.
Allow collectives to be an array
Get out of the business of managing middleware

The puppetlabs/mcollective module should not be attempting to manage
ActiveMQ, nor should it be attempting to manage RabbitMQ, nor any
middleware software. This is a separation of responsibilities issue.
Attempting to manage the middleware applications starts compromising
what the purpose of the module is. The correct approach is to deal with
integration of multiple technologies at a level above both of them. If
the configuration needs to be shared, it can be modeled using a business
logic, or "profile" kind of module.

         Business Logic
            /      \
           /        \
    mcollective    activemq

Besides mixing responsibility, listing specific versions of ActiveMQ and
RabbitMQ modules as dependencies impacts the usibility of tools like the
Puppet module tool and librarian-puppet when using
puppetlabs/mcollective either without ActiveMQ/RabbitMQ or with
ActiveMQ/RabbitMQ modules from other authors.

This commit cleans the tendrils into ActiveMQ and RabbitMQ from the
puppetlabs/mcollective module.