add template_file parameter to specify catalog

this lets you set the catalog to use when catalog_type
is set to 'template'.
Also added some tests according to catalog settings.

Change-Id: I48c3b903ceafe94f2ec31b49d617e5a9951de7f9
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