`#move_to_child_of` doesn't raise exception if non-existent ID given.

move_to_* methods now invoke `record.save`, so all user validations
and callbacks will be fired (fixes #23)
Addede callbacks finalization into AAOT::Transaction