Add IndependentDiskOrchestrator class & tests

In the interests of not cluttering up the VmOrchestrator class,
I've added an IndependentDiskOrchestrator class to handle
translation of the :independent_disks config subsection into input
to the Vcloud::Core::IndependentDisk class.

This will then be tied into the VmOrchestrator class, in the same
manner that VappOrchestrator calls VmOrchestrator.

This separation also allows for independent management of Independent Disks.
Add support for :independent_disks config section

:independent_disks is a list of hashes giving the :name of each independent disk
to attach. The vDC for the disk must come from the VM it is attached to - you cannot
attach a VM in one vDC to a disk in another.

This has been made a list-of-hashes specifically so that it can potentially be extended
later -- the API permits assigning independent disks to controller types and bus numbers.
Using hashes allows for this update without changing the API.
Update VM schema with independent disks; test.

I wanted to be sure that the schema addition for independent_disks worked, but
noticed that there wasn't any existing testing of the schema files.

I've added spec/vcloud/launcher/schema/launcher_vapps_spec.rb to test the particular
cases that I wanted to be sure worked as expected. It could be expanded to cover more
cases if required.
Add independent disk attach to happy path integration test

This requires:

* An independent disk be available in the `vdc_1_name` vDC
* The parameter 'existing_independent_disk_1' naming the above disk needs to be
  added to the vcloud_tools_testing_config.yaml
More sensible name for constructor param
Update vcloud-core version to 0.12.0

... so that we bring in the IndependentDisk support
Run a post-launch-cmd on VAPP launch

In order to trigger actions when a VM is launched, we should be able to
specify an arbitrary script to run which receives information about the
VAPP via environment variables and is capable of executing further
actions (such as notifying other systems that the VM has been created).

This commit adds the -p flag which will run the executable specified on VAPP
launch. It will pass the entire vapp_definition hash as the
VAPP_DEFINITION environment variable and the script will need to process
that for further information.

This is for [#66416966]
Merge pull request #78 from gds-operations/run-script-on-launch

Run a post-launch-cmd on VAPP launch
Merge pull request #75 from mikepea/attach_independent_disks

Attach independent disks