merge Widget/Container rewrites.

warning: breaks other scripts.
auto register widgets
inital work on a Button class.

To get any further, we need to implement writing to textures and
pixel operations. We'd make a Sprite.new, then we'd be able to
copy pixels in and out, or write them manually. This way, we'd just
make a new empty sprite, then draw the button out via code and
render it. Text rendering would benefit the same way: render text
once to an image, then simply render it over and over again.