builder/cloudstack: Do not process user data twice

The user_data field is currently processed twice. During the first
processing in Builder, all variables get expanded, including those set
which are only set later in stepDeployVirtualMachine, in particular the
address of the internal HTTP server. This change modifies the Builder to
only validate the user data so the processing is done only once in
stepDeployVirtualMachine when all variables are set.
builder/cloudstack: Use correct IP address for HTTP server

Using the last available unicast address will fail on machines with
multiple interfaces. We will instead use the IP address of an interface
which is ihas the connectivity to the CloudStack API.
post-processor/vagrant/cloudstack: Vagrant CloudStack post-processor

Add support for CloudStack Vagrant post-processor targeting the Vagrant
Cloudstack Provider. The Vagrantfile embedded inside the box contains
the template id and the CloudStack API URL as the built template is only
valid for that particular CloudStack instance.
builder/cloudstack: Expand template name in user data

Allow the use of template name in user data same as other builders.
Merge pull request #4 from petrhosek/do-not-process-user-data-only-validate

builder/cloudstack: Do not process user data twice
Merge pull request #5 from petrhosek/use-correct-ip-address-for-http-server

builder/cloudstack: Use correct IP address for HTTP server
Merge pull request #6 from petrhosek/expand-template-name-in-user-data

builder/cloudstack: Expand template name in user data
Merge pull request #7 from petrhosek/add-vagrant-cloudstack-post-processor

post-processor/vagrant/cloudstack: Vagrant CloudStack post-processor