Bug fixing

- CrimsonLog now uses an enum to make it easier to define a new log
level
- added a new log level (critical)
- Tier4 can now report the reason why the connection was closed
- fixed isConnected returning weird results
- standardised the read/write methods for packets (now defined once and
used by both the server and client)
- fixed compression of packets
- fixed issue where packets could be transmitted at the same time,
corrupting the stream
- removed throws from some methods
- updated the InternetUtils
- standardised exceptions