Servers can hold an election.

I think we should make a `Peer` interface that the server struct implements but we can also create a `RemotePeer` struct that communicates over HTTP to improve this code.