Add metadata and set hostname of generated VMs.

Valid point about API seperation, except that right now every project invokes this function directly with no layer in between.

I think the end result of this is wanted so what do you propose?