Simplify routing API. Closes gh-533.

Handle all kinds of routing through `Router#route`, deprecate separate
methods and events for routing by name.

This functionality can now be achieved by passing a hash instead of a
path to `Router#route` or the methods and events delegating to it, which
can declare the intended target via either

  `controller` and `action` keys or `name` key, and `params` hash.

The hash will be used to determine the path via reverse routing.