Add unitests for VMware vif, and fix code logical error.

Fix code logical error that cause variable referenced before assignment.
Add unittests for vmwareapi vif.

Fix bug #1177635

Change-Id: I6656e8b77417061eca2a56d50820f5385c0ae987
Allow a floating IP to be associated to a specific fixed IP

The current floating IP API extension only accepts the instance ID
and the floating address to be assigned. Where the instance is
connected to more than one network the behaviour is to associated
the floating IP with the first fixed IP of the instances
(and to log a warning)

This change introduces a new extension which wehn loaded adds a
fixed IP address as an optional parameter, allowing the floating
IP to be associated with a specific fixed IP.

Without this extension, or without the optional parameters,
the API behaviour is unchanged.

If specified the fixed IP must be associated with the instance.

DocImpact

Implements blueprint multi-nic-floating-ip-assignment

Change-Id: I9241137ad794cdf7f452ed84e9445f0e11fdd44e
Merge "Allow a floating IP to be associated to a specific fixed IP"
Merge "Add unitests for VMware vif, and fix code logical error."
Merge remote-tracking branch 'm_src_repo/citrix-fixes' into build-temp