More work on UI stuff. The basic logic for drawing UI zones is there, but I need to add the ability to dirty a zone deep down and be able to search for it (right now can only do this at the root level). Added widget and screen stuff.