Fixes #2064 - manage puppetmaster if passenger is not used
Added improved headers notifying sysadmins that the file is managed by puppet.
Don't eat the lines before the header
Restart cleanly on changes to vhost/certs
Don't try to generate certs if not using passenger
Add ordering to puppet app_root
Handle reports and autosign for puppet3/passenger issues
Parameterize vardir properly
Allow group read access to Puppet private key for use with Foreman or proxy
Add /usr/share/puppet/modules to common modulepath, it's a Puppet default
Various puppet-lint and other style fixes
Move puppet user creation to install

Defining the user puppet in config causes a dependency cycle if the user is
using git_repo=true:

(Exec[restart_puppet] => Class[Puppet::Server::Passenger] => Class[Puppet::Server::Config] => User[puppet] => File[/etc/puppet/rack/config.ru] => Class[Puppet::Server::Passenger])

By moving it to install we ensure it's already there.
Allow for different possible locations of the puppet binary inside the cronjob
Drop the sleep as it doesn't work on all shells
Updated Puppet to support following additional agent parameters:
* Pluginsync - defaults to true
* Splay - defaults to false
* Runinterval - defaults to 30. 

Added as parameters to init.pp so that can be set on class call. 
Updated puppet.conf.erb template to handle additional properties.
* Updated default run interval to seconds. 
* Converted lookupvar to use top-level param scoping.
Updated Puppet::init to support specifying a runmode:
* Added a $runmode param which defaults to 'service'.
* Created paramater in init class. 
* Added a case statement to config class to include relevant class based
on runmode value.
Updated to use 'include' rather than 'class', as won't break existing
setups which have puppet and puppet::cron defined.
Ensure that using top-level variable for $::puppet::runmode.
Make external_nodes a configurable parameter

In https://github.com/theforeman/puppet-foreman/pull/42 a parameter is
added, but this needs a way to configure it.
Issue 2036 - Updated auth.conf.erb and puppet.conf.erb to check for an
empty/nil puppetmaster var and fall back to fqdn.
Updated passenger install and created template files required for passenger config
add support for different storeconfigs backends
Added ca_server to params and puppet.conf template