Fix some issues with one() and trigger()

* Removing an even in the middle of trigger's loop caused problems -- this reverses the order of array iteration to avoid that
* Also, fixes one() so that event data gets passed on correctly
* Adds tests for both these issues