Avoid updating contexts on route change unless necessary

On route change, contexts for dynamic segments are always marked
updated, even when identical.  Additionally, any segment after the first
dynamic segment is forced to deserialize, even if the dynamic segments
have not changed.

This change tracks whether any preceeding segments have changed before
updating contexts, and avoids unnecessary reloads/redraws.

Conflicts:

	packages/ember-routing/lib/vendor/router.js