Each Domain has its own namespace

Previously, a domain could be optionally defined with a private
namespace - meaning that the name uniquness of user and project
entities owned by it would only have to be unique within that
domain.  The fact that there could exist a mixture of domains,
some with and some without such a namespace causes confusion
complexity, both for the api itself as well as poentially for
cloud administrators.  This change therefore defines that a
domain always has its own namespace for user, group and project
names (i.e. they only need to be unique within that domain).

The use of domains remains optional - i.e. it is a supported
configuration to run without any explict domains, in which case
the name uniquness constrains are identical to previous releases
of the Identity Service.

blueprint domain-name-spaces

Change-Id: Id2f5ffc275b9ef3ab0937f6874d12d07a86d8b74