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.