Added implementation for avl_add() with helper
Added implementation for helper: new_avl_el()
Added implementation for helper: insert_element_into_tree()
Added implementation for helper: element_with_hash()
Added implementation for helper: inserting an element into the tree
Moved documentation for add()
Moved documentation for new_avl_el()
Moved documentation for insert_element_into_tree()
Moved documentation for element_with_hash()
Fix: Fixed include statements
Fix: We don't need a `cmp` variable here

The case that the `cmp` variable is zero is excluded, as this would mean
that the node is already in the tree, whereas this function is assumed
NOT to be called in this case.

So we don't need to check for `cmp == 0`. Because this leaves us two
possible cases, we can simply remove the `cmp` variable and embedd the
hash comparison right into the if condition.
Use regen_metadata() after before ending the current recursion step. Remove rotations therefor
After adding a node to the tree, we must rebalance the appropriate subtree
Moved add() code to avl_add()

As the code is not that complex anymore, the add() function body was
moved to  the avl_add() function with this commit.
Added missing data insertion
Remove element_with_hash() helper function

The functionality of element_with_hash() is provided by avl_find(), so
use this function instead.
Merge pull request #66 from matthiasbeyer/implement-avl_add

 [WIP] Implement avl add