Look for the correct client or server packet when we have the chance.

This should improve backwards compatiblity.
Precreate the inputBuffers set, avoiding a trivial NPE.
Properly cancel written packets.
Intercept server packets when they're scheduled in the main thread.

Note that some server packets, such as LOGIN and STATUS, will still be 
run asynchronously.
Use getProperty() instead of System.lineSeperator(). See pull #12

Thanks to DerFlash for notifying me about this issue.
Merge pull request #17 with spelling corrections from devilboy.

Thanks guys. :)
Clear state related to a packet when its resent.
Added a GameProfile wrapper class.

Easy enough, as we don't have to use reflection.
Fixed two typos in PacketType (didn't merge properly from thesbros)