Type the state record

Mainly this is to check that I'm constructing it correctly everywhere.
`connect_args` is now a tuple, and clean_session is added as a sort of
cached connection option, in anticipation.
Replay frames on connect if clean_session=false

The clean_session flag signifies connection stickiness; if it's
sticky, the server is expected to deliver messages that didn't get
acked the last time, and so are we.

This means I need to distinguish between RPCs and replayable
frames. The replayable frames are publish and pubrel; that is, those
sent by the publishing party.