Add `data` argument support for `.bind()` and `.on()`

Alternate approach to #376