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.