events: add and cleanup checks for addListener

* Added check to ensure type is a string.
* else if'd the check for newListener if _events hadn't existed before.
* Simplified check for if event had been warned for memory leak.