Fixes #25: Allows off() to remove individual listeners

This maintains a cache of the user-given event listeners alongside the anonymous wrappers given to jq.on(e). This allows us to look up the original user-given listener to pass to jq.off().