Variant Alignment

Found a workaround to a GCC bug I was experiencing: GCC wouldn't allow me to use a constexpr integer to define the alignment of the byte buffer in Variant, so I was just using the alignment of std::max_align_t.

However, writing a slightly more complicated helper template which, rather than deducing the numerical alignment of the most aligned type, deduced the most aligned type itself, rectified this problem.

So now Variants won't be unnecessarily over-aligned, which might save a few bytes here and there.
Authentication Update

The authentication module now uses the new Yggdrasil::Client object to manage minecraft.net authentication.
Time Update/Cleanup

Updated the time module to 1.7 and did some housekeeping therein.
Yggdrasil Cleanup

Cleaned up some formatting/ordering issues in yggdrasil.cpp and yggdrasil.hpp.
Client Logging and Receive Fix

Fixed an oversight which could cause decrypted bytes to accumulate and never be parsed -- the Receive method was returning straight away when a buffer with no bytes was passed in, which could happen regularly if a buffer of ciphertext contained two or more packets.

Fixed irregularities in the protocol analysis logging of raw bytes for encrypted clients.

Fixed irregularities in the way that the number of parsed bytes was reported.
ClientList and ClientListIterator Fixes/Cleanup

Fixed massive problems with the ClientListIterator, including:

- Releasing locks that weren't held
- Under acquiring locks leading to synchronization issues (collection modified while being iterated, et cetera)

Cleaned up the implementation of both ClientList and ClientListIterator.
Packets Update

Added definitions of new packets.

Fixed the definitions of JoinGame -- the LevelType field had been omitted -- and ChatMessage (client to server version, which had a JSON payload rather than a String payload).
Server Status - Formatting Fix

Removed trailing whitespace from line 85 of src/ping/main.cpp.
Favicon Fix

Fixed an error in src/favicon/main.cpp that prevented it from even compiling -- no idea how that ever got in there.
Chat Update

Updated the Chat module to 1.7.

Extensively rewrote all methods which parsed ChatMessages.  They now natively use JSON representations, and their readibility has been greatly enhanced.

Extensively rewrote the Send method.  It's readibility has been greatly improved, and it uses much more sensible data structures to monitor which recipients were found -- and to whom the chat message was delivered -- and which were not, which should increase performance.

Eliminated dependencies on common.hpp.
Basic Chat Overhaul

Fixed many stylistic problems with src/basic_chat/main.cpp, including reliance on common.hpp through chat.hpp.

As with other modules that do not expose an API, the BasicChat class is now no longer in the MCPP namespace.

The INSTALL_MODULE macro from mod.hpp is now used instead of raw boilerplate.
Time Cleanup

Slightly refactored a section of src/time/main.cpp, improving readability and reducing nesting depth.
World Update

Updated the world module to 1.7.

Rewrote the ToChunkData and GetUnload methods of the ColumnContainer class to leverage the new and improved packet serializer.  While these both seem to work in a basic sense, there appears to be some issues with the new implementations (I'm observing issues with transmitting light values, but that could be originating elsewhere).

Also did some basic/general cleanup.

Removed dependencies on common.hpp.
Player Update

Updated the player module to 1.7.

Eliminated dependencies on common.hpp (through world.hpp).