Starting to add session mock tests.
Broke apart init and authenticate in session.

This makes testing easier, and makes the class more flexible.