Network Stack Rewrite

Completely rewrote the network stack (both Linux and Windows).  Added UNIX/kqueue support (untested, but leverages the same infrastructure/framework as Linux/epoll).

In addition to massive readability/maintainability improvements, the network stack is now multithreaded.  Previously only one thread on Linux, two (one for reads and writes, another for accepts) on Windows was used, due to synchronization concerns.  The stack was redesigned to obviate this, and therefore an arbitrary number of workers may now be used (defaults to the number of cores in the system).

For accepting incoming connections the Windows solution is now asynchronous, using AcceptEx.  Previously WSAWaitForMultipleEvents was used to wait on all listening sockets, and the one thread waiting on WSAWaitForMultiple events would be responsible for accepting/processing each and every incoming connection.  This solution would not scale to leverage the capacity of many worker threads, and required an extra thread for no reason, and was therefore undesirable.
1.7.2

Bumped the protocol version and minecraft patch number to 1.7.2.