Modify abn-tree directive to accept a generic on-branch-action callback, and refactor onDelete and onRename to use it