Small optimization to the way I was traversing dyn_arrays

Don't have to do that dereference mess on the return of
get_dynarray_content, when I can just get the first element of the
array, then use standard array index syntax on it.
Adding a basic constructor for RL_Objects

Allocates space for it and memsets the whole thing to 0

Also adding a RL_NULL object type (which this constructor implicitly
sets)
Adding a basic bitfield/bitflags implementation to utility.h
Giving objects a 32-bit bitfield for flags

Also defining an OBJECT_IS_PLAYER flag. Should be something more generic
later (like, OBJECT_IS_FOCUS or something, maybe) but this will do for
now.
Adding stable or unstable options to the dynarray implementation

To preserve sorted arrays when needed, and to do fast removal when
stability isn't needed
Adding RL_WORLDSHIFT event

For when the player walks across submap boundaries and the "reality
bubble" needs to follow them
Minor overhaul of the submap event system

So it's easier for the main game object to get events out of it
Setting the player's OBJECT_IS_PLAYER flag

Meant to commit this earlier, no problem though
Expanding the event system up to the main game object

Basic implementation includes the RL_WORLDSHIFT event, properly bubbled
up from the submap and processed and freed, and the "reality bubble"
shifts as expected.

valgrind reports no memory leaks after running around for a while and I
can't duplicate any of the segfaults I was seeing while this bit was
being implemented so I'm calling it good for now