Refactor quantum installation

* Move quantum installation to lib/quantum
* Refactor quantum configuration
* Move Quantum service account creation from keystone_data.sh to lib/quantum
* Define generic functions to install third party programs

* Minor cleanups related to Quantum
  * Kill dnsmasq which watches an interface 'ns-XXXXXX' in unstack.sh
  * Set default_floating_pool in nova.conf to make default flaoting pool
    work when PUBLIC_NETWORK_NAME is other than 'nova'
  * Make tempest work even when PRIVATE_NETWORK_NAME is other than 'private'

Change-Id: I4a6e7fcebfb11556968f53ab6a0e862ce16bb139
diff --git a/unstack.sh b/unstack.sh
index 09e0de6..975a079 100755
--- a/unstack.sh
+++ b/unstack.sh
@@ -28,6 +28,7 @@
 source $TOP_DIR/lib/cinder
 source $TOP_DIR/lib/horizon
 source $TOP_DIR/lib/swift
+source $TOP_DIR/lib/quantum
 
 # Determine what system we are running on.  This provides ``os_VENDOR``,
 # ``os_RELEASE``, ``os_UPDATE``, ``os_PACKAGE``, ``os_CODENAME``
@@ -39,8 +40,7 @@
 
 if [[ "$Q_USE_DEBUG_COMMAND" == "True" ]]; then
     source $TOP_DIR/openrc
-    source $TOP_DIR/lib/quantum
-    teardown_quantum
+    teardown_quantum_debug
 fi
 
 # Shut down devstack's screen to get the bulk of OpenStack services in one shot
@@ -119,8 +119,7 @@
     fi
 fi
 
-# Quantum dhcp agent runs dnsmasq
-if is_service_enabled q-dhcp; then
-    pid=$(ps aux | awk '/[d]nsmasq.+interface=tap/ { print $2 }')
-    [ ! -z "$pid" ] && sudo kill -9 $pid
+if is_service_enabled quantum; then
+    stop_quantum
+    stop_quantum_third_party
 fi