Update config.ru for Puppet 3.0 masters
Various (minor) bugfixes:

* Fix small dependency issue. We need a proper config file before generating certificates
* Minor syntax change in puppet::config and puppet::server::config (quoting single variable)
* Default case in puppet::server::passenger (puppet-lint ;)
Fixed dependency issue and added a default case for passenger in puppet::server
Style and syntax cleanup in the passenger manifest
Allow specifying what puppet version to use. Defaults to "present".

This required including both puppet and puppet-common for debian. Same
for puppetmaster and puppetmaster-common.
Test structure and an initial (example) test
Run puppet lint by default when running rake
Improved Rakefile
We require rspec > 2 for setting the pattern.
Fix location of puppet binary, always /usr/bin/puppet
Refresh Apache vhost from Puppet upstream, tighten SSL protocols
refs #2065 - provide version dependent puppetrun/kick path
Add 'listen' support for puppet agent
Run post-receive as the file owner

It's possible to run the git hook as user puppet, but anther user could
push as root and this will create files with owner root. The next user
could push again as puppet and get errors. After some discussion in
https://github.com/theforeman/puppet-puppet/pull/30 a conclusion was
reached that it's desired to run the hook as the file owner.

This patch adds setuid like behavior. It checks if we're running as a
different user than the file owner and root if that user is root. If so
we change the uid to the file owner.
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.