Implement puppet-server provisioner

This closely modeled after the same provisioner
in Vagrant.
Add docs for puppet-server provisioner
Update docs for puppet-server provisioner
Use sudo by default, as in puppet-masterless
Add missing main_test.go for puppet-server provisioner

This is required to pick up the tests with `make test`.
Change the word `aws_access_key` to `aws_secret_key`.
Merge pull request #833 from yosssi/fix-html

Change the word `aws_access_key` to `aws_secret_key`.
provisioner/ansible: configurable command / args

allow users to provide a replacement command / extra args to the
ansible-local provisioner.

this is useful, for example, to unbuffer output when using the
docker builder, or to modify ansible behavior, like enabling
verbose mode, injecting variables, or changing paths.
Allow Qemu binary name to be configured

On some systems the default Qemu binary name of qemu-system-x86_64
isn't appropriate.  So expose the binary name as a configurable item,
allowing the user to set it to something more appropriate if they need
to.
adding chef-client provisioner
Update main.go
enable qemu builder to handle reboots in the shell provisioner
Fixes #867: save private key when debugging gce builder

Signed-off-by: Prasanna Santhanam <tsp@qubole.com>
Formatted googlecompute builder as per `make format`
provisioner/ansible: support {group,host}_vars

ansible looks for group and host vars directories as well as playbooks
this revision to the provisioner uploads those as well.
squashed to a single commit by strcrzy.
Update documentation
Add import_opts to the virtualbox-ovf builder. My use case is that I
have existing virtualbox virtual machines where I need to keep the mac
addresses so that the network interfaces come up when packer boots them.
Otherwise I just get SSH timeout and I'm unable to configure the machines.
Use --url flag rather than --location for ec2-upload-bundle

AWS docs (http://goo.gl/rNZiCs) show that --location is deprecated and
to use the --url flag and reference the region endpoint instead.
Merge remote-tracking branch 'upstream/master' into puppet-server
Adding docs to #645 on the website

Setting `"ami_groups": ["all"]` will make the AMI publicly accessible.
Correcting website docs for this.