Move things around a bit to match project packages
Refactor tests a bit and create tests to cover session method contracts
during closed state and failed connection state.