Implemented dynamic arrays

A small implementation for when O(1) element access is favorable but we
still need to be able to hold an arbitrary number of elements.
Made submaps use dynamic arrays instead of linked lists

So reading submap contents will be faster and easier.
Fixed bug in dynarrays causing new elements not to be added sometimes

If their addition would cause the dynarray to grow, then it grew, but
the new element wasn't added afterward.
Simplified submap_process_moveevent()
Fixed bug causing submaps to duplicate actor references

Fixes segfault on exit
Fixed initialize_dynarray
Added *.swo to gitignore
Adding basic general-purpose rectangle functions
Naming oops
Fixing more typos :|
Added clear_listnode()

To initialize it to all zeroes.
Basic implementation of UI containers/placement system

UI elements (which themselves can contain other UI elements within their
bounding box), are defined with relative dimensions, 0 being farthest
left and 1 being farthest right. The real size of the element is
determined by the size of the screen and/or the size of the UI element
containing it. All elements can be resized on-the-fly (say, as the user
resizes the window).
Made rects use floats instead of ints
Added basic use of the UI system to the main struct game object

As well as dynamic window resizing with smooth UI element scaling to go
with it.