Made drawing functions relative to current space. They will be auto-aligned to the current space and will be sized down if needed (i.e. the caller attempts to draw outside of the space).
Added initial UI files.
Added functions for getting the pointer to items (rather than having to go through the process of copying them over).
Added _ptr functions for using pointers to real items instead of copied items. Previously, I started the _ptr functions for the get function, but that was with a different mindset. I was thinking I would provide the pointer to the interanlly-allocated item buffer, allowing modules to poke at the internal buffer. This could still be added in as another get function, but for the time being I've changed the _ptr stuff to be for allowing modules to create lists using pointers to external real objects. Now, we won't ever do any copying, but instead will pass around references to generic objects.
Broke list and list_ptr into different source files.
Finished up the beginnings of screen and ui. It now builds, but does nothing.