added token id variables & some logic to mcast

added an extra int to token malloc to account for token id
the first token gets id = 0.
when you receive a token check its token id, if it's less than the last
one you recieved it's a copy/old token and you can ignore it. if it's a
new token, update last_recv_tok_id and continue as normal.
when you sense that the token's been dropped, resend the token with
last_sent_tok_id
not implemented yet, but whenever new packets are sent, increment the
token id and update last_recv_tok_id, Copies of tokens have the same id.
so the receiver knows to ignore duplicates.