engine: Lazily initialize VM interfaces list

In order to deallocate vNICs from external networks, the interfaces list
for the VM is necessary. Therefore, the interfaces list will be
initialized lazily.

Change-Id: Ib2c08ea82134b398344dfed41e5000de2fe98a74
Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>
engine: Utility class for managing external networks

This utility class is useful for managing external networks, currently
it provides an easy way to deallocate the vNIC from the external
network.

Change-Id: I1c93d7a74c66bbcae54cd4667744b0a88882622c
Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>
engine: Remove vNIC from external network when necessary

Removing the vNIC from the external network only when the vNIC is
removed or the VM gets somehow removed.
This will allow the user of the vNIC to manipulate it on the external
network and not lose his changes when the VM stops.

Change-Id: I027992f52c35add0afd1ffe207b1adbdb2c5c957
Bug-Url: https://bugzilla.redhat.com/1013491
Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>