Cleaned up libbe.propertied.change_hook_property for mutables.
Now (except for a wimpy hash function) it's as good as it's going to
get for true mutables. Calls to change_hook occur for all changes,
sometime after the change-enducing action and before the next
attribute access. See testChangeHookMutableProperty for an example of
the expected behavior.
If you're doing some mutable-modification (e.g. t.x.append(5)) and you
want to `flush' the changes into a change_hook call, just assign t.x
to a dummy variable. e.g.
t.x.append(5)
dummy = t.x
If you _really_ need post-modification change_hook calls without such
a flush, you're on your own. Would you get the property-owning class
to poll for changes?