Properly handle emulated ldap enablement

Prior to this patch, a member attribute will attempt to be added to the enabled
project even if it already exists. This fails to pass since in LDAP you cannot
have two of the same member attributes in an object.

Change-Id: Ic2373b01eb9921fbf5e9ad828628119288821dba
Fixes: bug #1155234
Wrap config module and require manual setup (bug 1143998)

This moves keystone.config to keystone.common.config, which requires
.configure() to be called manually in order for options to be
registered.

keystone.config preserves the existing behavior of automatically
registering options when imported.

keystone.middleware.auth_token and it's dependencies within keystone no
longer cause config options to be automatically registered.

This is an alternative to https://review.openstack.org/#/c/24251/

Change-Id: If9eb5799bf77595ecb71f2000f8b6d1610ea9700
Merge "Properly handle emulated ldap enablement"
Merge "Wrap config module and require manual setup (bug 1143998)"
Enable emulation for domains

Fixes bug #1157727

Change-Id: I3760469b8000cfc5fb461bb9ede5d0e140413dd7
Allow trusts to be optional

Change-Id: I76ab6ddac70cccece46bc36d7592d840599c893b
Merge "Allow trusts to be optional"