Return 405 when attempting DELETE on /tasks

We currently return 404 NotFound when attempting to delete a task
by hitting the resource /v2/tasks/{task_id}. However, as this
resource exists and we do not allow DELETE on tasks, the correct
response is 405 MethodNotAllowed.

Implementing as per spec on
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

Fixes bug 1287951

Change-Id: Ia4a969e595b520dbc5f4e9a463d967681465ae6f
Sync common db code from Oslo

This sync contains commit ``f7705f3 Make table utf-8 charset
checking be optional for DB migration`` which will be used to
support bug #1279000 fix.

Full list of changes:

9fed4ed Fix Keystone doc build errors with SQLAlchemy 0.9
f7705f3 Make table utf-8 charset checking be optional for DB migration
5b7e61c Dispose db connections pool on disconnect
d1988b9 Set sql_mode callback on connect instead of checkout
a1a8280 Fix excessive logging from db.sqlalchemy.session
dc2d829 Add lockutils fixture to OpportunisticTestCase
d10f871 Adapt DB provisioning code for CI requirements
5920bed Make db utils importable without migrate
9933bdd Get mysql_sql_mode parameter from config
96a2217 Prevent incorrect usage of _wrap_db_error()
6cab37c Python3: define a __next__() method for ModelBase
20a7510 Add from_config() method to EngineFacade

Change-Id: I115f5610101a8512af484111469f5060dce27919
Signed-off-by: Zhi Yan Liu <zhiyanl@cn.ibm.com>
Imported Translations from Transifex

Change-Id: Id02da366e8f85442b75eb52e67d59e1ccec7a517
Merge "Return 405 when attempting DELETE on /tasks"
Merge "Imported Translations from Transifex"
Sanitize set passed to jsonutils.dumps()

Datatype set is not parseable by json.dumps() and will cause
ValueError. Catching that in _sanitizer and converting to list.

Change-Id: I9f1374c4268182e8d35e82c5784fb05c7b84c209
Fixes-Bug: #1296589
Merge "Sync common db code from Oslo"