Re-add keystone v3 auth with fixes

The first part of the commit is to re-propose the v3 auth changes.
https://review.openstack.org/#/c/92728/

The second part of the commit is to address the unexpected keyword
argument 'follow_redirect' and missing endpoint issue in certain
code path such as 'heat event-list' or 'heat resource-metadata'.
With the fix, follow_redirect argument is consumed by
SessionClient.  Heat endpoint is now passed from Heatclient
shell to SessionClient.

Unit tests were added and updated to cover the issue.

Change-Id: I0cdf837c924afe9cbd8826bdca5dd611c183efeb
Closes-Bug: #1349467
Closes-Bug: #1348297