[Please merge] Segregating building blocks

1. moved building blocks(e.g vapp, vm) to a new directory(lib/vcloud/core) and namespace(Vcloud::Core).

2. Required all core depedencies in lib/vcloud/core.rb. The opinionated and non-opinionated tools should require core.rb to reuse building blocks.


The VmOrchestrator should be in opinionated tool(launcher), but currently it sits in core blocks. This is because it's implementation is tightly coupled to core blocks. There is already a card raised for this.