More events and stuff

I've added eventClientRecieveCustomPayload and eventServerRecieveCustomPayload for mods to send and recieve their own packets. ApiNetwork is used to send packets. It is split into two parts, Client which is used to send packets to the server, and server which is used to send packets to the client.

ClientEventHandler has three new events for key presses, eventKeyUp, eventKeyDown, and eventKeyHeld. eventKeyUp only triggers when a key is first pressed, eventKeyUp is triggered when the key is release, and eventKeyHeld is triggered every tick whilst the key is pressed.

I updated the forge version with as many of the changes as I could and added notes on the changes still needed.
The following classes are still missing on the forge side:
  - KeyBinding
  - RenderBlocks
  - NetHandlerPlayServer
Someone else can look at sorting them out, otherwise you can just add the files and I can get all the changes put in. That may be better in the case of RenderBlocks.