Infer route name from function name in decorator

The previous approach was to patch up the route's "name" attribute later on,
when enumerating the routes (at Routes.routes), but that would not cover the
case in whicha route is used directly without enumerating it, e.g.:

  class App(Dispatcher):
    @get("/foo")
    def foo(self, request):
      return ""

    def __init__(self):
      super(App, self).__init__()
      self.add_route(self.foo)  # <-- Direct route usage

By inferring the name in the recorator, these kind of uses will always work.