Fix 403 status response

Fixes Bug1153082

Change-Id: I1305d885751d4fa746e49cd5a76100c1900a9a53
Add assertNotEmpty to tests and use it.

Extract the use of assertTrue(len(...)) into a method. The docs for
assertTrue say that it equates to bool(expr) is True and so the format
is correct however it reads inconsistently.

Change-Id: I75acf75f6eaac9b7f92fd452cc60ab0cfd447c7f
Use webtest for v2 and v3 API testing.

The intention is to remain as close as possible to the original
implementation and so leaves a number of easy cleanups and optimisations
until a later patch.

In writing tests their are a number of changes for API tests that are a
result of webob/webtest restrictions:
 * response.body is now the string body and response.result is the parsed
   dictionary.
 * response.status is now a string eg. '200 OK', use
   response.status_code to get the integer
 * response.getheader no longer exists. response.headers is a dictionary
   like object that can be accessed (case independently) with [] or
   .get()

Working towards: blueprint extract-eventlet
Change-Id: I393b4bad2fd6eacc0b8ae98fc204d1323014b5e4
Consolidate eventlet code

This change consolidates eventlet code to a single module.
Importing eventlet drags along alot of other behavior changes
(such as replacing gettaddr with a version that doesn't support
IPv6), so it's safer if all the eventlet code is in one place so
it doesn't get imported when it's not needed, such as when
running under httpd.

blueprint extract-eventlet

Part of fix for bug 1178732

Change-Id: Ia557f8df7f856d7707a9d8c19800ddc36f1572ed
Imported Translations from Transifex

Change-Id: Id63395d062ae1246c77d3d52fa10efc470a56908
Merge "Add assertNotEmpty to tests and use it."
Merge "Fix 403 status response"
Merge "Use webtest for v2 and v3 API testing."
Merge "Consolidate eventlet code"
Merge "Imported Translations from Transifex"