New more abstract element parent: Container.

Elements is a Container, as will be another forthcoming container. This is
pretty internal, so hopefully this isn't going to break a bunch of clients.

I'm adding one new container, but this opens the door to other kinds of
containers which can now expose just the API they need, rather than extending
Elements and exposing an "I'm a list of elements" API in addition to whatever
sensible API they might have. (I'm looking at you Tabs.)
A new container type: Box.

It contains zero or one elements and passes things pretty much straight through
to its contents. This is useful if you have one "slot" in your UI that you want
to fill with, say, a "Loading..." label and then the real UI later, but you
don't want to have to pluck the Loading label out of its group and insert your
contents into the same index and blah blah.
Handle unready-image icon passed to ctor.

Prior to this, it was not triggering the addition of a Callback to the icon to
be notified when the image was ready.