Remove race on Connection.Config.Heartbeat

Instead of concurrent access to the Heartbeat interval, multiplex all
heartbeat concerns into `Connection.heartbeater`, including extending
the timeout deadline if an interval has been negotiated and the
interface is available in `Connection.reader`.

Fixes #70