duhh...
Change output binary to 'gem'
Add multiplayer chat
Massively simplify/optimize the entity tracker

Rather than maintaining three separate list, just maintain one in which
an entry contains an entity, and it's state.
Send the player init packet
Add some macros to make list iterating easier

I was hesitant to do this; it's easy to go overboard with macros and
turn C into something it isn't. However, in this case, I think it cleans
the code up significantly.
Send tab interfaces on login
Add codec support for mixed/middle endian 32-bit values
Add support for the login window packet

This is disabled by default since I don't see a use for it, but
it's nice for completeness.
Fix incorrect flag in login window packet
Initial scripting engine import

The Python root is content/. startup.startup() is called when gem begins.
Currently the only package in the api is gem.log
Allow custom content dir, refactor startup module

Content dir can be specified by -C or --content
Renamed startup module to core, added shutdown function which is called
in script_free
Implement a basic hooking system for the API

Currently only 1 hook: player login
Also begin to implement richer API types: entity, mob, player
Implement the gem.Location API type
Added comments to mark what needs to be added to the API
Create startup and shutdown hooks

Hook registration is now done in core.register_hooks, which is the first and only function
the script engine directly calls at startup.
Reorder hook constants
Add username, rights, and tab interfaces to player API