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.
Remove unnecessary deps from Modulefile

We stripped out the middleware wrapper classes so these deps aren't
needed anymore.
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