This commit allows more flexible and consistent theme overriding
rules for each Widget. There are 3 levels of customization.
1. Global theme (yui.theme) this is the default theme for every Ui
2. Ui theme, this overrides the global theme and provides a default
for every Widget of the Ui
3. Widget theme, this overrides the Ui theme for a single widget
This commit also allows themes to specify a font field.
This replaces the sparse color, font and cornerRadius field often
provided by each Widget.
Widgets and Uis may also partially override a theme by specifying
only a few fields.