Add support for building QEMU images from pre-existing image files

If the `disk_image` parameter is set to true treat the ISO location
as the source of the disk image, copy it to the destination,
resize and boot it.
Update QEMU builder documentation with `disk_image` flag
Fixes #1334, Add power on retry to ESXi Driver.
add v2 api support

Signed-off-by: Vasiliy Tolstov <v.tolstov@selfip.ru>
builder/vmware-esxi: Add configuration options for remote cache path

  Add configuration option to explicitly control where Packer uploads
  ISO and floppy files to on ESXi hosts. The `remote_cache_datastore`
  defaults to the `remote_datastore` value. The 'remote_cache_directory'
  defaults to 'packer_cache', similar to the local caching capabilities.

  Addresses issues with [GH-1218] and [GH-1221] where paths for uploaded
  ISO and floppy files are not written to a valid location in the
  datastore.
Update digitalocean.html.markdown

update docs
Update digitalocean.html.markdown

separate v1 and v2 api
Update digitalocean.html.markdown

fix mistake
Configure MessagePack to be a bit more like gob

By default codec's MessagePack encode/decode will convert a string
into a []byte.  Tweak the settings so that string -> string and []byte
-> []byte.
Expand Artifact API to expose build state

In order that something consuming an artifact can have access to extra
builder specific data add the State method which allows the caller to
ask for arbitary values by name.
Add support for vagrant with qemu

Once we have produced a qemu VM, we now have the option of using
the vagrant post-processor to create a .box file that can be used with
the vagrant-libvirt plugin.

This uses the new State method of the Artifact API to get necessary
information from the builder.
Update vagrant supported builder list

Update the list of supported builders in the vagrant post-processor
docs to include QEMU.
salt provisioner: require local_state_tree
salt provisioner: tidy up and refactor into functions
fix copy/paste error

Signed-off-by: Vasiliy Tolstov <v.tolstov@selfip.ru>
Merge branch 'digitalocean' of github.com:vtolstov/packer into digitalocean
remove debug output

Signed-off-by: Vasiliy Tolstov <v.tolstov@selfip.ru>
website: document vmware-iso remote cache path
website: make remote vmware docs consistent
Extract Vagrant provider processing logic

This change extracts the provider processing logic to a separate method
which can be invoked from a subtype, providing a custom provider.