First pass at Chef Solo provisioner.
Make JSON attributes work with real JSON!
Rename configuration `cookbook_paths` to `cookbooks_paths` to
conform to Vagrant wording.
Remove configuration `cookbook_path` to simplify some things.
Implement `avoid_sudo` configuration option.
Implement `skip_install` configuration to skip Chef installation.
Remove errant die statement.
Rename configuration `avoid_sudo` to `prevent_sudo`
Merge remote-tracking branch 'upstream/master' into provisioner-chef-solo

Conflicts:
	config.go

Add the chef-solo provisioner back to config.go.
Fix import path for chef-solo provisioner.
Add basic test file for provisioner-chef-solo.
Merge remote-tracking branch 'upstream/master' into provisioner-chef-solo
Improve logging.
Correct behavior for undefined recipe list.
Correct package name to upstream repo.
Remove redundant code and clean up some string concatenation.
Clean up Say statements.
Remove debugging statement.
builder/digitalocean: send a "shutdown" before snapshotting

Instead of pulling the plug on a droplet with the "poweroff" command,
we first send a soft shutdown to the API, then we poweroff to allow
the snapshot to properly complete.

Sending just a shutdown and then snapshotting wasn't as reliable as
sending the poweroff manually, for reasons unknown to me.

This fixes #332.
Actual md5sum as Ubuntu Hashesh webpage is out of date.
Merge pull request #343 from masteinhauser/patch-1

website: Actual md5sum as Ubuntu Hashesh webpage is out of date.
packer: Add UploadDir to the Communicator interface
packer/rpc: use public MockCommunicator, tests pass
packer/rpc: implement UploadDir
builder/amazon/chroot: implement UploadDir for chroot communicator