Bleeding edge

In this PR we do the following:
- Fix malicious bugs found through testing
- Fix compression, along with it fixes bug with joining
- Make KeepAlive logic more efficient
- Follow the vanilla server packet sequence
- Add a more descriptive error message
- Remove debug messages
- Refactor