Participants are identified by indicies

They originally were identified by their public keys. Now they are
identified by their indicies, which enforces a limit on how many there
can be and allows hosts to communicate using a single uint8 instead of a
whole public key.

The test suite has not been migrated yet.
Merge branch 'master' into sliceParticipants
change Participants from a map to a slice
test that duplicate heartbeats are ignored
Added Entropy to Heartbeat Creation

Also renamed rand.go to random.go
Also changed a function name
add CreateHeartbeat and Heartbeat.Marshal, plus add them to tests
add multiple unit tests
Test timeout rules for HandleSignedHeartbeat
Merge pull request #65 from DavidVorick/sliceParticipants

Quorum Enhancements