Ignore broken endpoints in get_v3_catalog

Change-Id: Ifd858e9f37155e3806329c4688be494d0132a9c7
Partial-bug: #1347862
(cherry picked from commit 7e4aab33e2d38a87e26f9f4e65b4ba2097564fd2)
Ignore broken endpoints in get_catalog

If an endpoint is created with a malformed URL then get_catalog would
throw a HTTP 500 error. With this change we ignore all malformed
endpoints.

Change-Id: Ibe9a8fa49f410f2a76a0df732247bd6813fc734b
Partial-bug: #1347862
(cherry picked from commit 8737b43d2cc9cbc1af1ea7a0fbff39f1b1c50747)
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
Partial-bug: #1347862
(cherry picked from commit 7c1a3421077a1971742e7e9887793ad5f4c9f615)
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: #1347862
(cherry picked from commit 8599aa5d8393e3217e04bd8fb4bca2b2eaa41a69)
Add workaround to support tox 1.7.2

Change-Id: I58542f6e7dbbad98517c09b6176b9827f66dd1ff
Partial-Bug: 1348818
(cherry picked from commit 61b44eaceb3f57ef1d34e6a358398e36f49ba396)
Merge "Ignore broken endpoints in get_v3_catalog" into stable/icehouse
Merge "Ignore broken endpoints in get_catalog" into stable/icehouse
Merge "Updates keystone.catalog.core.format_url tests" into stable/icehouse
Merge "Fixes catalog URL formatting to never return None" into stable/icehouse
Merge remote-tracking branch 'upstream/stable/icehouse' into stable/icehouse