Updates keystone.catalog.core.format_url tests

Since the tests were unit tests I moved them into the new directory
structure. I also added a few tests to increase the coverage to 100%.

Change-Id: I063f0712b83ddd7773458a5bb3d4f483c20eb2a2
Fixes catalog URL formatting to never return None

The old behavior was to return None if the URL template was not a string
(or not string-like). This was a mistake because a None should never be
able to make its way into the catalog.

This is based off of an IRC discussion that spawned from:
https://review.openstack.org/#/c/81528/4/keystone/catalog/backends/sql.py

Change-Id: I12b0362d3869a3ec8dc1a6fa34e934a221deecbc
Partial-bug: #1230279
Only emit disable notifications for project/domain on disable

Now that the original (pre-update) version of the project or domain
is available, before a 'disable' notification is emitted, check to
see if the project or domain is already disabled. There is no reason
to perform the 'disable' actions and emit a 'disable' notification
unless the project or domain is changing state from 'enabled'.

Change-Id: I4a7b6a5c638f9faf6bd525553c81e379be562471
TestAuthInfo class in test_v3_auth made more efficient.

The TestAuthInfo class inheriting from class RestfulTestCase
is ineffcient because it causes backend databases and
fixtures to be loaded unnecessarily.

Moved auth building helper functions from RestfulTestCase to a new
class AuthTestMixin

Change-Id: If5c187e4f2a5871fd9ad41d90de4d5ddecd75153
Closes-Bug: #1134836
Updates Python3 requirements to match Python2

bp python3

Change-Id: Ie413c12dd1c4d863857d6a6437ea2cbeb47d4622
Consolidate provider calls to token_api.create_token

Ensure that token_api.create_token is only called from a single
location within the token provider common logic. This allows for
the token_provider calls to create_token to be overridden looking
towards a scenario where a provider will not actually store the
token data (ephemeral tokens).

Change-Id: Ia091ccfa4638f7307588f7c0c443b28126ee6359
bp: non-persistent-tokens
Merge "Updates Python3 requirements to match Python2"
Merge "TestAuthInfo class in test_v3_auth made more efficient."
Merge "Consolidate provider calls to token_api.create_token"
Merge "Only emit disable notifications for project/domain on disable"
Merge "Updates keystone.catalog.core.format_url tests"
Merge "Fixes catalog URL formatting to never return None"