Refactoring to get FML version from the new ModList map.

* getFmlBuildNumber reworked to use this mod list.

* ByteBufUtils has been moved so it is accessible from the protocol library too.

The mod version detection does not work if you start with a Vanilla server. To switch servers, a reset packet MUST be sent, otherwise the forge client will not respond to a handshake. This has been tested by just removing the sending of the Reset packet when no mod list has been stored (as FML aborts the handshake if a Vanilla client is detected). Thus, this detection code will only work if a Forge server fronts the servers, if a Vanilla server does, the client will still crash. It's possible we just can't do anything about that.