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
openstack: consoleproxy was misnamed, added firewall
openstack: Improvements to compute/hypervisor

Check hypervisor choice is valid, make telemetry
optional. Add nova::compute::neutron.
openstack:Add plugin/driver flexibility to network
openstack: add firewall to neutron-server
openstack: make metering optional in neutron l3
Merge pull request #2 from michaeltchapman/more_work

base: Add arbirtrary class options to base::base