Variant Documentation

Documented the Variant template.
Remove Metadata

Metadata is now handled through a Variant, therefore metadata.hpp, metadata.cpp, and all the specialized machinery therein have been superseded.
Compression Fix

Fixed a bug which caused Inflate to enter an infinite loop on garbage input.
NBT Overhaul

Complete rewrote the NBT parser/serializer to use the new Variant template.  The interface is much nicer, cleaner, and more feature-complete than previously (notably debug stringification of NBT structures has been added).
Packets

Added new packet definitions, and serialization/deserialization for Metadata, and the weird conditional parse in Spawn Object.