Fix the following auth related things in the OpenStack classes:

- Correctly handle ex_force_auth_token argument
- Correctly cache, re-use and expire auth tokens

Also update affected tests and test fixtures.

Reported by Michael Farrell, part of LIBCLOUD-428.
Merge branch 'fix_openstack_token_caching_and_reuse' into trunk
Refactor the code to make it easier to follow.
Add tests for _populate_hosts_and_request_paths method.
Update CHANGES.