Sync with router.js

We've been making changes to the vendored router.js in the Ember.js repo so stuff's gotten out of sync.

There's a few whitespace and unused parameters that have made their way back into it, but those can be deleted through a more formal PR to router.js in the future