Add service validation and encapsulation

This patch moves the keystone service resource
to a new class, keystone::service, and adds
a new resource that uses the admin credentials
to confirm the keystone server is accepting
connections and functioning well from the client
perspective. This validation resource is optional
and if specified will be required by all keystone
custom types.

In order to take advantage of this change, consumers
of the keystone service should depend on this class
instead of the keystone service.

Change-Id: Ibd92a7c40658bb242b3b55980489949cb5835145
fix admin_token with secret parameter

Using secret => true requires a space after the parameter, otherwise the
catalog fails to compile.

Change-Id: I025112c5989359d0bb1a2668ddcb640c3b1b0f59
Add ignore_default_tenant parameter to keystone::role::admin class

Exposing the ignore_default_tenant parameter for the admin keystone_user resource.

Change-Id: If7ede3efd7718a5756adce7db60c0091d091ba83
Closes-Bug: #1319510
Make service provider as changeble incoming parameter.

This change need for using Keystone with alternative service systems.
For example -- a corosync/pacemaker clustering solution. or another.

Change-Id: I4b7fe3e1a25d1017c53726cf8ce69338d060beb7
enabling tokens flushing using cron

This patch is for configuring a flush token cron when using database as
backend for tokens storage.
While potentially useful for auditing in production environments,
the accumulation of expired tokens will considerably
increase database size and may decrease service performance,
particularly in test environments with limited resources.
It's recommanded to create a crontab to flush tokens every hour.

Change-Id: Icd819cc95b3440f43c5b588f9f2dd6ca47b25a71
Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>