Implemented Tree::Builder#changed?

To do this, some internal refactoring was necessary. As a side effect
object/builder equality now works correctly.