Finished up the first version of UI and screen. TODO: Add the first widget.
Added fill widget. Added a little better printing to ui functions. Moved stuff around a little.
Removed console print from fill_widget.
Fixed format in printing dirty field.
Moved drawing of a UI's screen to before drawing its sub zones, as those are higher up than the parent UI (and thus were drawn over before).
Added clearing of screen dirtylist when done drawing. Added smarter setting of dirtylists when handling UI. Now, the UI will go through every UI zone and attempt to draw its screen. If nothing needs to be drawn, it will move on to that UI zone's sub zones and do the same thing. If something is drawn, it will 1) dirty all of the sub zones automatically 2) dirty its sibling zones, which will be analyzed once the current zone finishes being handled (once the recursive loop finishes). If a sub zone is marked as dirty (which is determined using the parent UI zone's dirtylist), the UI will automatically dirty all of its widgets, causing a full redraw. If the sub zone has no widgets, then nothing will be drawn and the UI won't dirty its sibling zones; if it has one or more widgets, then they will be drawn and its sibling zones will automatically be marked as dirty in their parent's dirtylist.