[fixed] Abort pending transition on user navigation

Previously, navigating (by clicking Back button or a link) while a transition in progress would put router into an inconsistent state.
Now, a pending transition will be aborted and ignored by the router if user navigates away while it was pending.

Fixes #479
Add tests for async transitions
Add tests for async corner cases
Merge pull request #480 from gaearon/fix-transition-races

[fixed] Abort pending transition if user navigates away