`transitionTo` utilizes `transitionTo` event

This a first step toward a more sound state-machine-based
approach to the router and transitions. Calls to `transitionTo`
on `Route` or `Router` will convert to a

    router.send('transitionTo', transitionEvent);

where transitionEvent is an instance of a new class called
`Ember.TransitionEvent`, which contains all the information
about an attempted transition. Leafier routes can override
the 'transitionTo' handler to halt the transition otherwise
committed by the default handler on ApplicationRoute.

The main benefit to all of this is that all external transitions
are funneled through Route-interceptable events.

Note that the following functionality is missing and will
be addressed in future PR's:

- `handleURL` does not yet convert to `transitionTo` events.
- There's no way to bubble up a TransitionEvent up to the
  default handler, allowing for an opportunity to modify/
  decorate the TransitionEvent object passed to the
  handler without halting the transition. This will probably
  require a change to `router.js`.