Fix syntax error of init script
Fix typo
Merge branch 'features/event'
Merge branch 'ns/cluster-based'
Merge branch 'arrange'
Merge branch 'split/NS'
Merge branch 'piece_selection'
Merge branch 'bugfix'
Merge branch 'fix/random'
Merge branch 'fix/PieceSelection'
Merge branch 'fixbug'
Update gitignore
Create two functions for generating next derived event and peer-join event
Change function CheckInSwarm to UpdateSwarmInfo
Create a test function of Choking algorithm
Add a member of struct event

Add bool var is_timeout for checking the REQ_PIECE event
that current processing is timeout or not.
Add a queue(STL vector) for each peer to store request messages
Add features of piece-request (Not Stable)

1. Send request to target peers' msg_queue
2. When sending a request, replicate another one for timeout situation
Add four states for each connection between neighbor

1. Add four states: am_interested, am_choking, peer_interested, peer_choking
2. Add condition in Piece Selection for checking that the selector can download
   piece from its neighbor.
Reserve memory space for vector g_peers and req_msgs