Insert a delegate-like packet sender into the client, that slows the Forge server handshake so the client can complete modded negotiation first.
Fix on initial connection when connecting to a vanilla server. Should fix some of the low latency (!) problems that users have seen. Part of issue #899.

We now do the client handshake before we start our server connection in this case. We allow it to finish through the use of an IVoidAction interface that acts as a delegate, passing back control to the main connection routines when the handshake is done.

When we come around to server switching (once FML has the ability to switch states), we need to consider that a server might reject the client after the handshake is complete. We might need to do a second handshake much later in this case, otherwise the user might end up with an incorrect state for the server they are currently connected to.
Fixing broken code that prevents clients from logging into modded servers.
Logging upstream/client side FML handshake, and reworked the client state class to fall into line with the FML server sequence manager.
Merge pull request #1 from dualspiral/fml

Fml