Refactor test to share connection handshake

In order to inspect the client properties and negotiated tunings,
capture them in the mock server object so assertions of server state can
be made after the client.Open completes.
Merged Sean's nice factoring