[#70162466] Hide fog

DO NOT MERGE; depends on https://github.com/gds-operations/vcloud-core/pull/108.

This is branched off that branch and the only additional commit is bd73955a.

Most of the code in vCloud Launcher, vCloud Net Launcher and vCloud Edge Gateway correctly just talks to vCloud Core; however, there are a few `Fog::ServiceInterface` and `Fog::ModelInterfaces` dotted around.

The point of change is that ideally we don't want the calling gems to care that they are using fog; all we want them to care about is that they have access to the vCloud API. We certainly don't want them to care whether they are using the fog request layer or model layer.

If we do this, and have all calling gems use it, then we can refactor the interaction with the API without worrying about anything outside vCloud Core and even, theoretically, take fog out of the equation, should we want to. Step closer to a stable API...

Comments welcome.