Puppetmaster module multi-master capable

This commit changes the design of the puppetmaster module to allow for
multi-master scenarios. The approach followed is #3 of
http://docs.puppetlabs.com/guides/scaling_multiple_masters.html
since it was deemed the one with the least amount of changes in agent
environment as well as horizontally scalable. It constitutes of a
"frontend" server acting as the Puppet CA, authenticating clients and
handling the CA work. It will set the necessary HTTP headers in the
request and proxy it using Apache's mod_proxy to one of N backend
workers for processing. The backend servers are powered by mod_passenger
albeit listening on a different port than the master (8141 vs 8140)
The changes are backwards compatible as well as allowing "standalone"
servers running just apache with mod_passenger enabled. Extensive
testing has taken place in labs. Git sync takes place using the already
established infrastructure of gitpuppet user. Population of private keys
on frontend needs to happen manually

Change-Id: Ibc3461a3394477986d9071dc3545727133742681