Added `routeTo` for event-based transitions

This a first step toward a more sound state-machine-based
approach to the router and transitions. Calls to `routeTo`
on `Route` or `Router` will convert to a

    router.send('routeTo', 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 'routeTo' handler to halt the transition otherwise
committed by the default handler on ApplicationRoute.

The `linkTo` helper has been altered to make use of `routeTo`.

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`.