Add missing return - closes #1114
Fix locale object getter, closes #1113
Initial draft of forge/FML support. Some race conditions prevent this from working sometimes. Something with the time we send the handshakes
Fixing race condition for forge clients.
Disconnects vanilla users connecting to a FML server gracefully.
Fixes Vanilla <-> Forge interaction.
Allow Bungee to handle Forge "extended short" packets.
Attempt to fix extended packets crashing Spigot by only allowing extended packets to be written when the server is a forge server.

Conflicts:
	proxy/src/main/java/net/md_5/bungee/BungeeCord.java
First pass at fixing race conditions when initially connecting to a Forge server.

When a user first connects to Bungee, once login has completed, connection to the Server starts. However, with Forge, we start the handshake at the same time as we start the server connector. In some cases, the handshake completes from Bungee <-> Client before Bungee <-> Sever has even seen a hello. However, in the majority of cases, the server handshakes first, and doesn't think the Client is a forge client, disconnecting them for the reason that they are not modded, even though they are.

This commit introduces a delay if a Server Hello is encountered. If so, the packet is stored, and handled again if the client then completes a FML handshake. If not after a set time (currently 5 seconds), the user is then disconnected.

This commit should not be considered final (there might be some cleaning up to do), but should fix the issue.
Attempt at fixing another race condition: removing UpstreamBridge mod list sending, relying on the ServerConnector and/or UserConnection only.
Clean up some of the code.
Stop large packets getting to the server if it isn't a Forge server.
Rewrite the forge client handshake handler to try to make it more resilient, and first attempt at resetting the client state by sending a LoginSuccess packet.

The commit moves all the scattered forge client handshake logic into Forge specific classes, and using that as a handler. An enumeration is then used to define the behaviour at each step - which should hopefully make it easier to follow how a Forge server connects to it's clients.

As suggested in issue #899, I've included a resetHandshake method that sends a LoginSuccess packet. It doesn't seem to work at the moment (I still can't get the client to resend the handshake), but it's possible it's sending the wrong packet - it should be easy to replace if it turns out this is the case.
Fix sending the name and the UUID the wrong way around in the LoginSuccess packet, add Minecraft version check.
Forcing client to complete handshake (without that extra "ack", the handshake would remain uncompleted).
Moving the string "FML|HS" into a constant.
Move server handshake into it's own class
Move as much Forge specific code into Forge specific classes.
Add a flag to the config, "enable_forge_support" to enable forge support. This will ensure that anyone wanting to run a pure Vanilla setup don't have to worry about forge handshakes. "enable_forge_support" defaults to false.