Fix typo
Fix bug of rejecting event that its peer was left
Hide debug info of rand-seeds
Make leechers start from Piece-Get event
Wihtout using cout, however, write debug-info(events, peers) to files
Change the debug info of std output
Add function to check each argument has valid value
Change these global variables to extern const
Fix bug of template function not accepting extern variable as template parameter
Fix bug in peer selection
Add function to randomly shuffle a vector
Add option for compiling both release and debug
Corrent the path of bin
Fix bug in event processing

This bug occurs when one client send request(s) to peer, however,
peer(s) not admit this request in time, then leave swarm.
So, it cause client can't get pieces and request others.

Current solution is let peer to check recv_msg_buf before leaving the swarm,
if find unprocessed request(s), then notify the requestor to do requesting again
(in implementation: genrate each requestor's Piece-Req event).
Merge branch 'testing' into develop