Added a failing test for recursive once calls.

Taken from issue #54
Added a fix for the recursive once calls.

Now once methods are removed from the listener list before the method is
actually called. This prevents infinite recursion when using
addOnceListener.

It will not prevent the once listeners that are indicated with a return
value, there is no way around that one.

Fixes #54
Merge branch 'feature/fix-recursive-once' into develop