xenapi - quantum: L2 agents for dom0 and domU

This patch makes it easier to support the all-in-one installation of
XenServer with Quantum:
- separate agents for domU and dom0 openvswitches. The domU agent's name
  is "q-domua", and the dom0 agent is called "q-agt"
- create a physnet1 physical network to connect those openvswitches

Note: This patch depends on the quantum patch:

    https://review.openstack.org/15022

For a diagram, see:
    http://goo.gl/BuAdg

Change-Id: Iff851438553528b9051edd380ecbb2c0415cbf78
diff --git a/tools/xen/functions b/tools/xen/functions
index c6e484d..3458263 100644
--- a/tools/xen/functions
+++ b/tools/xen/functions
@@ -123,6 +123,32 @@
     ! [ -z $(xe network-list bridge="$bridge" --minimal) ]
 }
 
+function _network_uuid() {
+    local bridge_or_net_name
+    bridge_or_net_name=$1
+
+    if _bridge_exists "$bridge_or_net_name"; then
+        xe network-list bridge="$bridge_or_net_name" --minimal
+    else
+        xe network-list name-label="$bridge_or_net_name" --minimal
+    fi
+}
+
+function add_interface() {
+    local vm_name
+    local bridge_or_network_name
+
+    vm_name="$1"
+    bridge_or_network_name="$2"
+    device_number="$3"
+
+    local vm
+    local net
+
+    vm=$(xe vm-list name-label="$vm_name" --minimal)
+    net=$(_network_uuid "$bridge_or_network_name")
+    xe vif-create network-uuid=$net vm-uuid=$vm device=$device_number
+}
 
 function setup_network() {
     local bridge_or_net_name