Dynamic global widget state updates

It is now possible to re-theme all widgets globally (assuming they use the default theme state); there is a working test in menus.lua