Get button text from attribute, not context.

We now get the button's text from a python attribute named in the
xml attribute "text." This is a bit cleaner - there's now a symmetry
between how the method and the string are bound to interface components.
Auto-discover subclasses of frame.Frame.

This way we don't need the frame.widget decorator.