Implement avl del

This PR implementes the `avl_del()` function.

Some linkedlist helpers were introduced.

**Note:** Some possibly needed rotations are still missing.
There's a differance between hashes and predicate: A hash can identify several elements, a predicate cannot. If the predicates evaluates to true, the element is removed and after that returned!