update definitions and add inline comments

add at least an empty comment so that puppet-lint
does not complain.

remove inheritance for classes that do not need it.
Add data type

Adds a native type used to centrally store
configuration data in puppetdb.

This type is intended to replace export_fact.
Add ip from nic name lookup

Adds a function that can be used to retrieve
the ip address from a nic name.
Refactor kickstack class

1. limit the amount of data that is looked up through
it. This is because the individual class interfaces
will be responsible for looking up their own data.

2. make the usage of name resolution optional

3. remove parameters except:

- parameters that determine the backend to use
- parameters that are used frequently
refactor data lookup to use data resource

and make other data exporting related changes

switch exported data from hostname to internal ip
address.
Remove endpoint from api services

B/c they need to be configured as a part of the
keystone intallation.

Add kickstack::keystone::endpoints to configure
endpoints. Add kickstack::keystone::endpoint to
configure keystone endpoint.
mova data lookups to hiera

all data should be passed through class parameters
so that it is introspectable.

All data should also be resolved through hiera.

This commit refactors the code to make this so.
refactor cinder::config

- perform all data lookup through hiera
- build sql_connection string
refactor cinder::volume

move volume backend code to its own class.
refactor kickstack client

to make it have less code. Remove unneeded variables.
refactor database class

move the configuration of each database to its own
class.

The main motivation or this is that the db specific
params should only be part of that class interface
for each db.
make selection of glance backend configurable.
refactor horizon

- move memcached configuration to its own class
- move parameters to class interface
- fix bug in conditional logic
refactor kickstack::db

- ensure data lookup happens through parameters
- simplify database creation code.
refactor nameresolution code

move the condition logic that determines if it is
used to the class that calls it (i.e. kickstack)
refactor nova::compute

create hypervisor specific classes so that hypervisor
specific parameters are looked up through their
respective class interfaces.
refactor params

only set OS specific defaults in params.
refactor roc class

move the implementation to separate classes per
rpc backend. To ensure that rpc backend specific
code is specified per backend interface.
refactor keystone endpoint.

- remove keystone endpoint (so it can be declared
with the other endpoints)
- move data lookup to class interface
refactor nova::config

- move data lookup to hiera in class interface
- do not expect sql string, generate it