Introduce the connection class

The connection class can be made with a transport and/or authenticator
that was already constructed or it can be made with nothing.  The
create method will create a transport, authenticator and session if
they are needed.  The normal use case would look something like:

    conn = connection.Connection(**auth_args)

Change-Id: I27573bce799d9992748967b5ea1b575139a75853
Merge "Introduce the connection class"