Separate logging components

Break out logging components into individual profiles so that
logging can be a pluggable component, as well as supporting
roles that separate the data part of log storage from the
indexing and filtering part of log aggregation as well as the
dashboard.

Elasticsearch is moved to the database section as it may be consumed
by a non-logging application.
Make glance backend pluggable

Allow non-rbd choices of glance backend
Make openstack database pluggable

Allow choice of openstack backend from mariadb and
postgresql
Make neutron layer 2 mechanism pluggable
Add basic swift support
Reorganise high availability profiles

Decouple haproxy and keepalived
Move pacemaker here from openstack
Refactor an modularise base classes
Add firewall support

Take firewall defines from puppet-openstack-cloud
Fix mistaken logging -> monitoring.
agent::sensu -> sensu::agent and similar for server

Conflicts:
	manifests/monitoring/sensu/server.pp
Make sensu dependencies optional

Dependencies might be on other nodes, so make
them optional.
Merge pull request #1 from michaeltchapman/mergeable

Mergeable
base: Add arbirtrary class options to base::base

Add a new parameter that allows a user to define a set of base
classes to be included on every role. This prevents repeated
definitions in every role for common classes that may not be
a part of puppeels.

Also fixed $manage_accounts
base: Add firewall and augeas options
openstack: Fix syntax error in glance::api
webserver: add firewall support to apache

Also remove base class since that may not be desired and
is not a strict requirement.
openstack: mange glance cleaner and pruner optional
database: Make repo optional, add firewall

Since non-mariadb mysql servers are also legit, support
that. Added a firewall definition for port 3306 (can be
overridden using the hash). Removed profile::base since
this is a separate profile.
messaging: Add firewall support and remove base
openstack: add firewall to nova, keystone, glance