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