Implemented basic Promise step

Proposer/Acceptor interaction through Go's RPC package
Implemented Paxos for arbitrary number of nodes

Nodes run as threads within same process
Ran into issues with Go's RPC implementation
Paxos fully functional for single round

Fixed RPC server issue
Split project into packages

Single giant file is now multiple sort of large files
Restructured role design

Cleaned up initialization design
Added heartbeat signal
Removed weird file

No idea how this appeared
Implemented leader election

Heartbeats used to determine if election needed
Implemented state machine

Proposer role now works as a state machine.
Added basic replicated log class.
Completed replicated log implementation

Still dealing with index-out-of-range issue
Fixed replicated log OOB error

Centralized internal array reallocation
Implemented basic multi-paxos

Still lacks full replication and some optimizations
Elected leader can now skip prepare phase

Added NoMoreAcceptedPast function to replicatedlog
Refactored peer information management into clusterpeers
Added logic to paxos implementation in proposer
Created proposal management package

Other code now uses generic proposal.Id struct
Wrote threadsafe proposal.Manager
Fixed bug updating firstUnchosenIndex

Also wish golang supported negative indices
Added Success RPC

Chosen values will be propagated in case of proposalId change
Roles can restart using data from cold storage

Have yet to implement storing data in cold storage
Fixed bug impacting proposal comparisons

Also deleted .exe file
Now works across remote networks

Automated roleId discovery for distributed clusters
RoleId must be manually assigned for local clusters
Added simple client for remote network cluster

Zero cl arguments for local, >0 for remote
Added manual synchronization hack

Press any key once all nodes are up