Add AVL implementation

Hi,

we need a AVL implementation, so I started defining an interface for one. Please review!

@neithernut , @theneikos , @manuelmessner
In such cases, I prefer an early return. The program flow is much clrearer this way imho and you save some intendations.