Fix for listenToOnce mem. leak

This is a failing test demonstrating #3226, then a patch that makes the test pass.
You could also test for the correct context binding here: `a: function() { ok(this === a); },`