implemented and tested OnDescendantChanged (virtual method) and DescendantChanged (event);
did some work toward implementing OnAncestorChanged and AncestorChanged;
some cleanup