Make the py33 Jenkins job happy

This is the first step toward getting Keystone up and running on
Python 3. This patch will create a virtualenv, but will not actually
run any tests. Future patches will enable testing modules as
incompatibilities are worked out.

bp python3

Change-Id: I1ca3bad7ec8789872791a18594cd6f3b4bf911eb
First real Python 3 tests

The goal of this changeset is to enable at least some of the tests to be
run under Python3. Even if we can't get them all to run initially it's
important that we start seeing the changes from bp keystone-py3kcompat.
Also it's important that we are checking for regressions. If we do all
this Python 3 work, but don't have automated tests in place we may
inadvertantly undo that work.

In this initial changeset I had to do some not nice things to get this
to work.

First I had to switch to using the nose test runner. testr seems to be
much more aggressive about importing everything, even when you are not
going to run the test module. This idea came from oslo. Once we have
full Python 3 support we can go back to testr.

Then I had to mock out some of the libraries that don't work on Python
3. This is unfortunate, but had to be done because keystone.test.core
indirectly imports a significant amount of the codebase.

bp python3

Change-Id: I6dd0d1b84380c4c386f70b72cdfcdf9b744c755f
setUp must be called on a fixture's parent first

There is some odd behavior when a fixture's setUp fails before it has a
change to call the parent's setUp. It causes an error in the error
handling and the original exception is lost. The bug has been reported
upstream:
  https://bugs.launchpad.net/python-fixtures/+bug/1299502

Change-Id: I27cbfbe2c8ae34e72950361f8d0d7d8d3e249f8c
Fix cache configuration checks

There were two different checks to see if a cache region was already
configured with a backend. Both were changed to use the
Region.is_configured property.

The initial reason for this change was that the hasattr approach in the
test fixture was causing some issues in Python 3. For some reason it was
forcing the __get__ lookup on the descriptor and Python 2 did not.

bp python3

Change-Id: I409656f5ede08160cc68d48e7a3a636328e3e9a6
Refactor service readiness notification

import and apply Oslo systemd module
drop old keystone.common.systemd
drop onready configuration parameter
 - systemd notification is no-op when not running inside systemd

Oslo commit 53e1214c092f09e3851b1a1b55289a93a72b09ec

Change-Id: I80f325c9be9c171c2dc8d5526570bf64f0f87c78
fixed typos found by RETF rules in RST files

rules are avaialble at https://en.wikipedia.org/wiki/Wikipedia:AutoWikiBrowser/Typos

Change-Id: Ia2b0e226d3f682fcba59907eadeb2a2c84972175
Merge "Refactor service readiness notification"
Merge "fixed typos found by RETF rules in RST files"
Merge "Make the py33 Jenkins job happy"
Merge "First real Python 3 tests"
Merge "setUp must be called on a fixture's parent first"
Merge "Fix cache configuration checks"