Rewrote (internal) find_element_with_parent() helper

This patch rewrites the (internal) find_element_with_parent() helper
function.

I'm not even sure the previous version worked, but I assume this one to
work (lack of testing by now).

The approach of this:

    1.  Check if the passed `struct avl_el` exists, return 0 if not, do
        not touch anything.

    2.  If the root node is the node we search:
        2.1.    Set the `*parent_dest` to NULL, as we assume this is
                the first recursion step

        2.2.    If the `found_dest` exists, set it.

        2.3.    return 1, we found it

    3. Check the left and the right subtree by doing a recursion step.

        Found:  If the recursion step has found the node we look for, set
                `*parent_dest` accordingly and only if it is not set
                yet.
                This prevents further (upper) recursion steps from
                re-setting it, which would result the root node of the
                tree we operate on to be saved as the parent node, which
                is wrong.

                return 1 afterwards, we found it.

        Not:    The node we look for is not in the tree. Ensure the
                `*parent_node` is NULL and return 0, nothing found.