Sync oslo threadgroup.py to fix wait & stop methods

Sync oslo threadgroup.py to 25ff65e955b7ef1091722224f7c71f14fc971354 so
we include the fix for bug #1196525, which resolves a problem where the
wait and stop methods would not actually wait for/stop all threads in
the thread group.

Change-Id: Ia49d7096180b2942cf49b1f0dacde3c5e933337c
oslo: update the remainder of the modules

Change-Id: I83796c1e1f2f69d2ce27e7180c4004a5f345f063
Remove unused variable badkeys

Since it's never used and consumed a set subtraction.

Change-Id: Ic2231ad5e491527c7f746172d9a3e07a6623b823
Fix missing policy enforcement in CFN API

Currently the CreateStack and UpdateStack actions aren't correctly
enforcing the policy, so add calls to _enforce which fixes that,
and rework the test to illustrate the issue.

Change-Id: Ia5c2e65512ab9d1c163171f8617c081ab96745e5
Closes-Bug: #1256049
Merge "oslo: update the remainder of the modules"
Merge "Remove unused variable badkeys"
Merge "Sync oslo threadgroup.py to fix wait & stop methods"
Deny API requests where context doesn't match path

We shouldn't overwrite the context tenant_id (which comes from the
scope of the auth_token) with that from the path, instead raise a
HTTPForbidden exception if the path-provided tenant_id doesn't match
the context.

Change-Id: Ib6fb9881103312f7492081a20178f12309f35d81
Closes-Bug: #1256983
Merge "Fix missing policy enforcement in CFN API"
Merge "Deny API requests where context doesn't match path"
Quick and dirty multi-region

Change-Id: I5e6b6ff3ca297ea1d827d99647d7e298fcf7666a