add subtree modification checking to chinchilla

On every tree update, appropriate nodes are marked with a boolean
attribute 'modified'.

 * All parents of a modified/removed node are marked as modified.
 * All new children are marked as modified.
 * All preexisting children are *not* marked modified.

So for example, if you change the data of a node, it and all its
parents are marked as modified, but the existing child nodes are
not. This makes sense for now, but I could imagine some wanting a
different behavior. Chinchilla should accomodate different opinions on
this, if ever needed.