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.
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
communicator/ssh: refactor scpSession that we'll reuse for UploadDir
communicator/ssh: refactor to upload directories properly
communicator/ssh: UploadDir works properly