Added AVL header (interface for avl type)

This is related to #12 .

#12 became a mess, so I want to re-start the PR by opening this one, including _only_ the interface definition for the AVL type.

Please review.

---

I would close #12 when we use this instead!