Use configured auth for standalone middleware

Previously auth_password.KeystonePasswordAuthProtocol directly created
a keystone v2 client, which means that heat-standalone wouldn't
work if heat-engine is using the default KeystoneClientV3 client.

This change creates a heat_keystoneclient.KeystoneClient and uses that to
fetch the data required to build the authenticated env to pass to the
request context. This means that the standalone middleware will now work
with the default v3 keystone backend, the contrib v2 backend, or any other
valid implementation of KeystoneClient. The type of KeystoneClient is
determined by the heat.conf keystone_backend value, which means that this
value is now read by heat-api when using the standalone middleware.

For v3 the service catalog is left empty, which means heat-engine will fetch
it again.

Change-Id: I46d4edbfffdb0e606e4f4c767610c137d03495f4
Closes-Bug: #1402472