New input prompt ui element.

Along with several small changes in the way the UI classes handle text
(now object based instead of list based)