Improvements over last version of library: * New delivery type: Reliable sequenced (Lost packets are resent but late arrivals are dropped) * Disconnects and shutdown requests are now queued properly, so calling shutdown will still send any queued messages before shutting down * All messages are pooled/recycled for zero garbage * Reduced CPU usage and lower latencies (in the <1 ms range, but still) due to better socket polling * All public members of NetPeer/NetConnection are completely thread safe * Larger number of delivery channels * More exact roundtrip measurement * Method serialize entire objects via reflection * Unique identifier now exists for all peers/connections * More flexible peer discovery; filters possible and arbitrary data can be sent with response * Much better protection against malformed messages crashing the app API enhancements: * NetPeerConfiguration immutable properties now locked once NetPeer is initialized * Messages cannot be send twice by accident * Impossible to confuse sending and receiving buffers since they're different classes * No more confusion if user should create a buffer or preallocate and reuse