Validated the following against the java533 branch:
Heartbeat behavior follows the base requirements:
OPTIONS request is used to send heartbeat
Heartbeat is sent if no other requests have been sent on connection within the heartbeat interval.
Default value for heartbeat interval is 30 seconds.
(Idle timeout behavior will be validated as part of )
Consecutive heartbeats are sent on a continually idled connection at the heartbeat interval.
PoolingOptions.setHeartbeatIntervalSeconds(X) is respected.
PoolingOptions.setHeartbeatIntervalSeconds(0) disables heartbeat.
Connection is defuncted and closed when a heartbeat times out (with the read timeout)
Connection is defuncted and closed when the response to a heartbeat is not a SUPPORTED message (had to build custom cassandra for this)