[minor] Adding more events
[fix] Rename `accepted` to `granted`
[minor] Added some comments with references to the raft specification sections
[fix] We should always update to `FOLLOWER` when our term is out of date
[fix] We should always update to `FOLLOWER` when message from an accepted leader made
[minor] Renamed `data` to `packet` to make it more clear.
[minor] Send leader information with packet transmission.
[fix] Removed duplicate state change check.
[fix] Also sync the leadership.
[fix] Always reset the heartbeat timeout when we receive a message from the leader.
[fix] Start the heartbeat when we're constructed.