[#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...

I've tested this would work with vCloud Launcher, vCloud Net Launcher and vCloud Edge Gateway.
vCloud Walker has its own interaction with fog which is another story: https://www.pivotaltracker.com/story/show/64043160. Making it use vCloud Core would involve extending this API Interface. Not currently sure whether I might do that as part of this or not.

Comments welcome.