Replace Ui::Tuple with std::tuple, Widgets now have a separate init method
Theme manager now manages whether an update should draw
Removed unused attributes
Split WindowBase into Mouse/Keyboard managers
Error checking in png loader
StreamArray reworked

 - Tries to avoid redrawing allocations that dont change
 - Is synchronized by the theme manager instead of ophaning buffers
All manager objects now live in WindowBase