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.