fixes #5 and #6 and avoids evaluation on every on/off call

This PR would fix legacy IE8 support mentioned in #5 and #6 but also avoid the `(element.addEventListener || element.attachEvent)` evaluation on every `on`  call. Also makes`.call()` unnecessary...