Do not append to messages with +

Some code was appending to translated messages using +, which
oslo-incubator's new gettextutils doesn't support.

The code was changed to use a substitution value in the message
instead.

Part of bp user-locale-api

Change-Id: If2bc1821d0057c4cd53ead7eac1712284464b9bf
Sync gettextutils from oslo-incubator 997ab277

Keystone's gettextutils package was behind oslo-incubator's
version. This syncronizes gettextutils from oslo-incubator commit
997ab277 .

bp user-locale-api

Change-Id: If9cf0c83df6d6c8db844a30c605f60e907abcbdd
Restructure developing.rst

The "Developing with Keystone" file was incorrectly structured.

1) The "Building the Documentation" section was under the
"dogpile.cache based Key-Value-Store (KVS)" section, which it's
got nothing to do with.

2) The "Running Tests" section was under the "Initial Sample Data"
section, which it's got nothing to do with.

3) Several testing-related sections could be put under their own
"Testing" section to keep them together.

Change-Id: Icb0c63385d9ccc24b91d17e057e60346ce1a648e
Reduces memory utilization during test runs

It turns out that when the Python test framework runs it will create an
instance of TestCase (actually the subclass containing our tests) of
each test in the TestCase. These instances don't get cleaned up until
the very end of the test run. This means that if there are lots of tests
and/or lots of instance variables created in the setUp() you use lots of
memory.

Change-Id: Ie9451feafd47d4a4b9a0ff6d8459b45a1645d1ee
Implements regions resource in 3.2 Catalog API

Adds CRUD implementation in SQL and KVS catalog drivers
for hierarchical regions support. The SQL driver implements
the region hierarchy using a simple adjacency list model
since it is expected that typical deployments will only
have a handful of regions, and the current regions API does
not offer any complex hierarchy querying that would make
a nested set model more appropriate.

Implements: blueprint first-class-regions

Change-Id: I2d4cca19008b92ef5758181b1792726834db7f7a
Replacing python-oauth2 by oauthlib

This patch replaces the old, unmaintained python-oauth2 library
by the better suited oauthlib in keystone oAuth modules.

The library switch comes with two notable changes in terms of use:

* the client must set the callback uri to 'oob' (out-of-band)
  explicitly when requesting a Request Token
* the requested_project_id header is not included in the signature
  anymore, in compliance with the oAuth1 spec.

Closes-Bug: 1240382
Change-Id: Ie553830cc80075aa818e719604e6bc4c754d2ae3
Implementation of internal notification callbacks within Keystone

Keystone subsystems (extensions or other modules) can now
subscribe to Create, Update, and Delete events.  This allows any
subscribed system to act upon the event and perform actions (such
as cleanup on delete).

Co-Authored-By: Guang Yee <guang.yee@hp.com>
Co-Authored-By: Morgan Fainberg <m@metacloud.com>

bp: internal-callbacks
Change-Id: I03713b7f1f94480f76e0121eb6184226062af1a6
Merge "Implements regions resource in 3.2 Catalog API"
Merge "Reduces memory utilization during test runs"
Merge "Do not append to messages with +"
Merge "Sync gettextutils from oslo-incubator 997ab277"
Merge "Replacing python-oauth2 by oauthlib"
Merge "Implementation of internal notification callbacks within Keystone"
Merge "Restructure developing.rst"