Refactor auth use session object

DEPENDS: PR #3 

Refactor use of keystoneclient to provide a session object.
This gives us a little more control over when keystoneclient tries to do the authentication, and allows true lazy authentication (though we force it right away).