(wip) simplifying and partitioning hierarchy code

working on reusing more of the command model object (Command.js) as well
as the DOM to manage the UI of relations between commands. Massively
WIP, committing to save work. it loads without throwing exceptions but
there are still things not working correctly.
Do not ignore spurious relation update events

When a command update event indicates that a new child is set, that
child could be equal to the existing child. This event will not be
ignored / special cased: appropriate events are fired. If that is
undesired the update should not carry this information in the first
place.
fingerprint the "init" update event