moving listeners object up into init()
off() method now will clear all listeners when no arguments passed
adding another test for off() method
updating trigger() based on suggestion from @halis today