Use election and heartbeat timeouts when building peer transporter

The HeartbeatTimeout and ElectionTimeout fields of a Peer were being set after the factory function instantiated its Transporter. Since the Transporter needs these timeouts to builds two derivative timeout values, they must be passed in to the factory function.