virt-launcher, migration: Extract proxy server to a function
virt-launcher, migration: Extract proxy server to a function

The creation and start of the migration proxy server has been abstracted
away to a dedicated function.
The function is now handling all the details needed to create, start and
teardown the proxy server.
The reader is not required anymore to get into the details of how this
is implemented when reading the top level function (of migration).

On failure, the servers are stopped with no need from the caller to
perform any additional operation.
On success, a teardown function is returned on which the caller should
call (usually through a `defer`) in order to cleanup the proxy server
resources.

This change includes a small logical change on when the proxy server is
stopped on error. Previously, the teardown was called regardless of an
error or not. Now, the teardown of a specific proxy server is not called in
case of failure to create/start it.

Signed-off-by: Edward Haas <416ab6a6c3e37a8cab0d365516e79cce8f9be5ad@redhat.com>

stu-gott/kubevirt,stu-gott/kubevirt,kubevirt/kubevirt,kubevirt/kubevirt,stu-gott/kubevirt,stu-gott/kubevirt,davidvossel/kubevirt,davidvossel/kubevirt,davidvossel/kubevirt,davidvossel/kubevirt,kubevirt/kubevirt,kubevirt/kubevirt