Fix Route.unbind() when trying to unlisten to an event

`Route` extends `Events`, but then overrides `unbind()` with an incompatible function. This means that if something ever binds or listens to the "change" or "navigate" events of `Route`, it can't be unbound. Worse, when you try to unbind, it breaks functionality of `Route` instead.

This defers to the `Events.unbind()` function if provided with arguments, and does the original thing otherwise, consistent with this behavior elsewhere.