Feature/generic os support

Abstracted out support for virtual machine managers and the guest operating systems, so that we can support alternatives in the near future.