Reject user ports that have MACs the hypervisor cannot use.

If a hypervisor has requested specific MAC addresses, ports requested
by the user have to be in that set of MAC addresses, or they cannot be
used. Raising an error at network allocation time is cleaner than
waiting for the hypervisor to attempt to plug its vifs and error.

Change-Id: If556cc518a01df658044e3ba6b9d7584bfabe588
Override floating interface on callee side

We allow individual nodes to override the floating interface by setting
public_interface=XXX on the node. Unfortunately in multi_host an
associate or disassociate call can be forwarded from one host to
another. Currently the override happens on the caller side instead of
the callee side. This fixes the issue by moving the override.

Fixes bug 1096987

Change-Id: I37fbbf9e0ee0ffbe8c8754649301371b98da9f4f
Merge "Override floating interface on callee side"
Merge "Reject user ports that have MACs the hypervisor cannot use."