Compare listeners using reflect instead of fmt

Added listener.Equals().

Also fixed a typo in Once()'s test.