Switch Layout methods over to Container

I don't know how widespread implementations of this are, but I've deprecated the old abstract
method to minimize inconvenience. Old code still works for now, but even once the new method
is made abstract, it only takes a couple of seconds to upgrade subclasses, so meh.
Container can do all the wasAdded/wasRemoved stuff too
Descend into Container for tree traveral