refactor quantum configuration

add openstack::quantum manifest that can
be used to configure various quantum roles.

nova::controller changes:

* remove quantum code from nova::controller
(b/c it is not part of that role)
* specify that the private and public interface
must be set when using nova-networking in the
nova::controller (this is b/c they are no longer
required to be passed into the openstack::controller
b/c quantum does not need them)

openstack::controller changes:
* configure quantum when configured to do so
* remove quantum password defaults (but make them
required when network mode is quantum)
* add keystone host (it is used by cinder and
quantum anyways and needs to be set)

openstack::compute changes:
* set quantum default to true (should it really be
set to true)
* add parameters that allow the dhcp/metadata/l3
/ovs plugins to be set on compute hosts (for HA)
* add parameters for configuring quantum's database
* add a param for configuring the l3 keystone auth
* add bridge_interface param
* specify that quantum host and db_password are
required when quantum is configured
* reconfigure it to use open sack::quantum
* add db_name, host, etc.. params
* set default rabbit password to something not
nova specific (b/c now it's used by other components)

Change-Id: I9dc1628fbb493fd93bfd602b1c6e33c01ad46d96

Conflicts:

	manifests/controller.pp
add security rules to qemu file for quantum

I am completely unsure if this is only required
when using qemu (or under what conditions it is required)

Change-Id: I5a2c737a9cdce0695e7029152bfbd3f8d04a53d9