feat(leave): introduced onPreLeave event

Fixes #28, #43, #46
fix(RouteHandle): added missing preLeave stream proxies
refactor(router): refactor routing logic
chore(tests): minor cleanup in tests
fix(router): correctly return false when vetoed leave
Merge pull request #47 from pavelgj/issue-28

feat(leave): introduced onPreLeave event