use correct url on Windows platform

os.path.normpath is used to clean url. On windows platform, it
returns url with "\" instead of "/", which is required in heat api
 in:
/heat/heat/api/middleware/version_negotiation.py,
path_info_peek method.

Change-Id: Ic1a5fc5dd789a7996e08a85a9d8908267e203565
Closes-Bug: 1254657
Pass only tenant name or ID to keystoneclient

When creating the keystoneclient, we only need to pass the tenant
ID or name, not both

Change-Id: I0dd03759979026daba1be343f7194f9b7e15a589
Cleanup exc.verbose after tests

A couple of tests override the (module level) exc.verbose flag,
but fail to reset it after the test, which leads to failures
if a test expecting non-verbose exception format happens after the
verbose test.

Change-Id: Iac633707e74464f8d6509a0c5aa0cc62da00ce47
Use fixtures for all shell environment variables

Currently only the variables related to the test are set, so
any other OS_* variables in the local environment can affect
the test results leading to confusing results.  Setting all
variables not passed into fake_env to None will delete them
in the fixture, hence ensuring a consistent test environment.

Change-Id: I24a07ef5fc89ca9fff121fe206b8e314f23c4402
Don't call credentials_headers() twice

We don't need to call credentials_headers in the stack create/update
code, as it's already called in the HTTPClient.  This has the side-
effect of simplifying the shell test, which currently has to mock
header arguments to json_request, which are incorrect anyway because
HTTPClient always sets X-Auth-Token if a token is passed in (as
evidenced by bug #1250731)

Change-Id: I6212cf5a50f5a8d919f743e23ece4bd1d0e1ad1c
Partial-Bug: #1252248
Merge "use correct url on Windows platform"