This patch implements these parts of the blueprint:
1) Implements the keystone_domain resource. Domain creation/ensure
has a couple of special cases:
a) When creating a domain that is going to be the default domain,
we need to write the id of that domain to the keystone.conf file
in the [identity] default_domain_id parameter. Since there is no
way to get that id at the puppet level, we have to use the ruby code
to ensure that the parameter has the correct domain id in the
keystone.conf file. Likewise, when removing the default domain,
ensure that we reset the [identity] default_domain_id parameter to
its default value.
b) When deleting a domain, have to disable it first. Keystone does not
allow you to delete an enabled domain.
Implements: blueprint api-v3-support
Change-Id: Idc88fb22de8a9a9c8b1f6dfef8ae018190f254e1