Make Client module work with request model

Now that we've figured out how interoperability with
different client protocols will work, the Client module
should never have to deal with raw packets – only with
requests formatted according to a standard API.
Quick fix: on_ground? is a bool, not a float
Define remaining client->server packets

The Alembic.Minecraft.Packets module now contains a payload
definition for every packet that a vanilla Minecraft client
might ostensibly send to the server (according to the Minecraft
protocol documentation at http://wiki.vg).

However, in the process of defining these packets, it's become
clear that there are additional data types that need to be
defined for the sake of being able to completely read all
incoming packets. Definitions of the 'ubyte', 'byte_array' and
'slot' data types are required in particular for the sake of
completeness.