This commit adds a bitvector to each heartbeat wherein the ith bit in the
bitvector is set if the source of the hearbeat has heard "recently" from the ith
entity. Recent is defined by the decision function Entity::ComputeRecentlySeen().
As it stands, an entity has heard from another entity recently if it has done so
in the last Entity::kMaxRecent seconds. Since we are using bitvectors, the type
Id is now an int rather than a string.  Moreover, entities need to have
contiguous Id's starting from 0.  The example input files have been changed
accordingly.

I also made some small improvements:
-Changed macro constants to be const variables
-Moved the functionality in Scheduler::Forward(E*, M*, Entity*, Port) to a class
 to allow for partial specialization on E and M
-Heartbeats were previously initiated by manually inserting them into the event
queue in main.  They are now initiated via a InitiateHeartbeat event.