Use py3kcompat urlutils functions instead of urlparse

While working on [1], found that python33 gate is failing because of
direct use of urlparse functions. Update oslo code to use py3kcompat
urlutils functions wherever urlparse is directly used.

Also add SplitResult to py3kcompat urlutils.

[1] https://review.openstack.org/#/c/58067/

Change-Id: I9ef2bf1650f02de8c493d9d442a8395714e2bdaa
The ability to run tests at various backend

Added testing functionality for using different db backends. Сurrently
exists ability to define backend-specific tests along with regular
tests. Assuming that the tests will be run under a variety of backend
there exists opportunity to skip backend-specific tests at
inappropriate backends. For the correct functioning of the tests required to
export environment variable with a root access database uri.

Blueprint: tests-given-db-backend
Change-Id: Ic5d3cfe8764b3c04affe79088473255c17535e54
Added opportunistic DB test cases

These test cases are meant to be run opportunistically within the
general test suite, i.e. only when openstack_citest database is
available (which is always true for our CI infrastructure, but might not
be true for developers machines). This is similar to how we run
migrations tests in all OpenStack projects

Blueprint: tests-given-db-backend
Change-Id: Ic3706763c8fc56c0fcf4d1964ed1c5f17a662be6
Unify different names between Python2/3 with six.moves

Some modules use different names in Python2 and Python3. Use six.moves
to make them work well in Python2 and Python3.
This is changes mapping:

six.moves      Python 2                 Python 3
builtins        __builtin__ 	        builtins
filter 	       itertools.ifilter() 	filter()
reduce 	       reduce() 	        functools.reduce()
reload_module  reload() 	        imp.reload()

Implements: blueprint make-python3-compatible
Change-Id: I97971f2ab40385bfc2c73ae7e8a7620c4d64a03c
Merge "Use py3kcompat urlutils functions instead of urlparse"
Remove build from MAINTAINERS

The code has been removed, but the MAINTAINERS file has not been
updated.

Change-Id: Ib414f8d75c4e8ab12cd37c5405191121c9d1ba79
Merge "Unify different names between Python2/3 with six.moves"
Replace data structures' attribute with six module

In Python 3, some data structures' attribute is different in Python 2.
See http://pythonhosted.org/six/#object-model-compatibility
This is change mapping:

   six               Python 2           Python 3
six.next(it)         it.next()          next(it)
six.iterkeys(dict)   dict.iterkeys()    dict.keys()
six.itervalues(dict) dict.itervalues()  dict.values()

Implements: blueprint make-python3-compatible
Change-Id: Ida48f39ff230860feee7305b93b134c625a21663
Only pass non-None sortby to PrettyTable.get_string

Fixes bug 1256883

Older versions of prettytable are not tolerant to sortby
being provided as an explicit kwarg set to None.

We avoid this issue by leaving the kwarg unspecified when
sorting is not required.

Change-Id: I4ef7bc73a820a63d790a23a0f4e64a1077274d8a
Mark rpc,notifier,zmq as Obsolete

Update the MAINTAINERS file to reflect that rpc, notifier, and zmq are
all Obsolete in favor of the oslo.messaging library.

Change-Id: I537688625f4b1d44b82fca35f08e4171341d1ad2
Add a graduating status for projects

Add an explicit status for projects in the process of graduating
from the incubator, for cases where that is expected to take
enough time that we would need to maintain code in two places
until the graduation is complete.

Change-Id: Ib2f2bb6dd1d3bccb10f43966a835c7c6f4381edd
Merge "Mark rpc,notifier,zmq as Obsolete"