[#62905634] switch Vm class to be immutable on @id

Replace storage of vcloud_attributes with @id.

This removes the possibility of creating Vm objects that are in a variety
of states, and clarifies that this is an abstraction of the actual state in
vCloud Director.

Makes class immutable too, which is a nice benefit.
[#62905634] Fix VmOrchestrator to use vm_id

* keep interface of VmOrchestrator the same for now

* integration test now passes
[#62905634] Fix Vm unit tests to use @vm_id

... rather than supplying a full vcloud_attributes hash

NB: One test still failing, think due to a masked bug surfacing
[#62905634] Fix use of vm/vapp attributes in Vm tests

Previously the tests surrounded the prescriptive use of vapp_name == vm_name. Corrected this, which also fixes broken storage_profile unit test post vcloud_attributes => id change
[#62905634] highlight change of Core::Vm interface in VmOrchestrator test
[#62905634] split Vm from Entity parent
#[62905634] Improve tests to document class; check id is of correct form
[#62905634] Remove stateful handle to Fog::ServiceInterface
[#62905634] Cut down number of Fog requests made when updating metadata
Merge pull request #95 from alphagov/immutable_vm

[#62905634] Immutable Core::Vm class