text: Title: Handler would be modify after wrapped by `app.route`
  Body: **Is your feature request related to a problem? Please describe.**
  
  Handler would be modify after wrapped by `app.route`
  
  ```python
  from sanic import Sanic
  from sanic.response import text
  
  app = Sanic("test")
  
  
  @app.get("/")
  def get(request):
      """
      here is my doc
      """
      return text("123")
  
  print(get.__doc__)
  print(get.__name__)
  ```
  Original function has been changed into tuple.
  
  ```sh
  Built-in immutable sequence.
  
  If no argument is given, the constructor returns an empty tuple.
  If iterable is specified the tuple is initialized from iterable's items.
  
  If the argument is a tuple, the return value is the same object.
  Traceback (most recent call last):
    File "/Users/zinklu/code/WebProject/SanicDebug/app.py", line 22, in <module>
      print(get.__name__)
  AttributeError: 'tuple' object has no attribute '__name__'
  ```
  
  
  **Describe the solution you'd like**
  
  `app.route` won't change original handler.
  
  ```python
  from sanic import Sanic
  from sanic.response import text
  
  app = Sanic("test")
  
  
  @app.get("/")
  def get(request):
      """
      here is my doc
      """
      return text("123")
  
  print(get.__doc__)
  print(get.__name__)
  ```
  
  ```sh
  
      here is my doc
      
  get
  ```
  
  **Additional context**
  