unbind method + unit tests + method argument

This is building upon #65 and #69. I've added a "method" argument so you can specify exactly which handler to remove, like in most event systems (e.g. `on('event', method)` / `off('event', method)`).

There's a bit of undefined behaviour in the unbind method which needs a design decision though. If the scope is not set, then calling just `unbind('a')` will only remove handlers for "a" in the current scope. I think I'd expect it to remove all handlers for "a", like calling `off('event')` in an event system. Thoughts?